Java模拟Http post、get请求
来源:互联网 发布:常见电信网络诈骗试题 编辑:程序博客网 时间:2024/04/30 15:52
/** * post * 2016-6-12 下午2:16:14 李锋镝 * @param url POST地址 * @param data POST数据NameValuePair[] * @return 响应的参数 */ public static String post(String url,NameValuePair[] data){ String response = ""; HttpClient httpClient = new HttpClient(); PostMethod postMethod = new PostMethod(url); //设置请求编码 postMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"GBK"); postMethod.setRequestBody(data); //设置请求头header参数 postMethod.setRequestHeader("userId","57601095"); postMethod.setRequestHeader("userSession","57601095"); postMethod.setRequestHeader("cityid","31000"); int statusCode = 0; try { statusCode = httpClient.executeMethod(postMethod); } catch (HttpException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } //301、302重定向 if(statusCode == HttpStatus.SC_MOVED_PERMANENTLY || statusCode == HttpStatus.SC_MOVED_TEMPORARILY){ Header locationHeader = postMethod.getResponseHeader("location"); String location = null; if (locationHeader != null) { location = locationHeader.getValue(); System.out.println("重定向跳转页面:" + location); response= post(location,data);//用跳转后的页面重新请求。 } else { System.err.println("location is null."); } }else { System.out.println(postMethod.getStatusLine()); try { byte[] b=postMethod.getResponseBody(); response = new String(b,"GBK"); } catch (IOException e) { e.printStackTrace(); } postMethod.releaseConnection(); } System.out.println("POST响应参数:"+response); return response; } /** * get方式 * 2016-6-12 下午2:38:45 李锋镝 * @param url * @return */ public static String get(String url){ String response = ""; HttpClient httpClient = new HttpClient(); GetMethod getMethod = new GetMethod(url); getMethod.setRequestHeader("userId","56166702"); getMethod.setRequestHeader("userSession","56166702"); getMethod.setRequestHeader("cityid","31000"); int statusCode = 0; try { statusCode = httpClient.executeMethod(getMethod); } catch (HttpException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } //301、302重定向 if(statusCode == HttpStatus.SC_MOVED_PERMANENTLY || statusCode == HttpStatus.SC_MOVED_TEMPORARILY){ Header locationHeader = getMethod.getResponseHeader("location"); String location = null; if (locationHeader != null) { location = locationHeader.getValue(); System.out.println("重定向跳转页面:" + location); response= get(location);//用跳转后的页面重新请求。 } else { System.err.println("location is null."); } }else { System.out.println(getMethod.getStatusLine()); try { byte[] b=getMethod.getResponseBody(); response = new String(b,"GBK"); } catch (IOException e) { e.printStackTrace(); } getMethod.releaseConnection(); } System.out.println("GET响应参数:"+response); return response; }
对于post请求,我们需要根据对应接口的编码设置请求编码,防止中文乱码。请求需要的参数则放在NameValuePair数组中,NameValuePair用法如下:
NameValuePair page = new NameValuePair("page", "1");NameValuePair pageCount = new NameValuePair("pageCount", "10");NameValuePair state = new NameValuePair("state", "1");NameValuePair[] data = {page,pageCount,state};
而get请求,则不需要改变编码,默认的ISO-8859-1编码,一般后台会根据这个处理中文,请求的时候只需要写好请求的url即可。
原文地址:李锋镝的个人博客>>http://www.lifengdi.com/article/10034.html
0 0
- Java利用Http 模拟POST、GET请求
- java模拟HTTP post,get请求
- Java模拟Http post、get请求
- java http get post 各种请求,模拟浏览器请求
- Java模拟HTTP的Get和Post请求
- Java模拟HTTP的Get和Post请求
- Java模拟HTTP的Get和Post请求
- Java 模拟 HTTP Get Post 请求实现论坛自动回帖
- Java 模拟 HTTP Get Post 请求实现论坛自动回帖
- java模拟发送http的get、post请求
- java 模拟http的get和post请求
- java使用HttpClient模拟发送http的get、post请求
- java模拟get/post请求
- JAVA 发送Http请求,GET、POST请求
- 使用java模拟Get与Post请求
- Java 后台模拟发送 POST GET 请求
- Java实现模拟发送POST、GET请求
- java后台模拟浏览器请求--GET/POST
- 【Sicily 1937】导游
- struts配置全局异常result与全局异常映射mapping以及自定义返回类型
- Android不同App中Activity的相互启动
- LeetCode 121. Best Time to Buy and Sell Stock
- Android 使用Scroller实现绚丽的ListView左右滑动删除Item效果
- Java模拟Http post、get请求
- 用java语言实现事件委托模式
- 非常可乐
- MySQL一行多列求和sum()函数
- Filter简介
- hadoop 基本操作命令
- 悼念512汶川大地震遇难同胞——老人是真饿了
- 基于SpringBoot + Mybatis实现SpringMVC Web项目
- 【Android基础知识】ViewStub的使用