首页 > 代码库 > 发送请求工具类
发送请求工具类
采用HttpClient与远程服务器通信,所以定义一个工具类对HttpClient进行封装
getRequest():发送get请求
postRequest():发送post请求
FutureTask(Callable<V> callable) //创建一个 FutureTask,一旦运行就执行给定的 Callable。
FutureTask(Runnable runnable, V result) //创建一个 FutureTask,一旦运行就执行给定的 Runnable,并安排成功完成时 get 返回给定的结果 。
- /*参数:
- runnable - 可运行的任务。
- result - 成功完成时要返回的结果。
- 如果不需要特定的结果,则考虑使用下列形式的构造:Future<?> f = new FutureTask<Object>(runnable, null) */
FutureTask多用于耗时的计算,主线程可以在完成自己的任务后,再去获取结果。public class HttpUtil{ // 创建HttpClient对象 public static HttpClient httpClient = new DefaultHttpClient(); public static final String BASE_URL = "http://192.168.1.88:8888/auction/android/"; /** * * @param url 发送请求的URL * @return 服务器响应字符串 * @throws Exception */ public static String getRequest(final String url) throws Exception { FutureTask<String> task = new FutureTask<String>( new Callable<String>() { @Override public String call() throws Exception { // 创建HttpGet对象。 HttpGet get = new HttpGet(url); // 发送GET请求 HttpResponse httpResponse = httpClient.execute(get); // 如果服务器成功地返回响应 if (httpResponse.getStatusLine() .getStatusCode() == 200) { // 获取服务器响应字符串 String result = EntityUtils .toString(httpResponse.getEntity()); return result; } return null; } }); new Thread(task).start(); return task.get(); } /** * @param url 发送请求的URL * @param params 请求参数 * @return 服务器响应字符串 * @throws Exception */ public static String postRequest(final String url , final Map<String ,String> rawParams)throws Exception { FutureTask<String> task = new FutureTask<String>( new Callable<String>() { @Override public String call() throws Exception { // 创建HttpPost对象。 HttpPost post = new HttpPost(url); // 如果传递参数个数比较多的话可以对传递的参数进行封装 List<NameValuePair> params = new ArrayList<NameValuePair>(); for(String key : rawParams.keySet()) { //封装请求参数 params.add(new BasicNameValuePair(key , rawParams.get(key))); } // 设置请求参数 post.setEntity(new UrlEncodedFormEntity( params, "gbk")); // 发送POST请求 HttpResponse httpResponse = httpClient.execute(post); // 如果服务器成功地返回响应 if (httpResponse.getStatusLine() .getStatusCode() == 200) { // 获取服务器响应字符串 String result = EntityUtils .toString(httpResponse.getEntity()); return result; } return null; } }); new Thread(task).start(); return task.get(); }}
发送请求工具类
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。