HttpClient发送get,post接口请求
HttpClient发送get post接口请求/* * post
* @param url POST地址
* @param data POST数据NameValuePair[]
* @return 响应的参数
*/
public static String post(String url,NameValuePair[] data){---------------get里面没有data只有url String response = ""; HttpClient httpClient = new HttpClient();
PostMethod postMethod = new PostMethod(url); //设置请求编码
postMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"GBK"); postMethod.setRequestBody(data); ---------------------------------get没有这一步-------- //设置请求头header参数
postMethod.setRequestHeader("userId","57601095");
postMethod.setRequestHeader("userSession","57601095");
postMethod.setRequestHeader("cityid","31000");
int statusCode = 0;
JSONObject jsonResult = null; try {
statusCode = httpClient.executeMethod(postMethod);
} catch (HttpException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} try {
byte[] b=postMethod.getResponseBody();
response = new String(b,"GBK");
jsonResult = JSONObject.fromObject(response); //将返回结果变成json格式
} catch (IOException e) {
e.printStackTrace();
}
postMethod.releaseConnection();
System.out.println("POST响应参数:"+response);
return response;
}
下面是带有301重定向的完整代码
/**
* post
* @param url POST地址
* @param data POST数据NameValuePair[]
* @return 响应的参数
*/
public static String post(String url,NameValuePair[] data){------------------------get里面没有data只有url String response = "";
HttpClient httpClient = new HttpClient();
PostMethod postMethod = new PostMethod(url); //设置请求编码
postMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"GBK");
postMethod.setRequestBody(data);--------------------------------get没有这一步 //设置请求头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;
}
HttpClient发送get,post接口请求的更多相关文章
- Android笔记---使用HttpClient发送POST和GET请求
在Android上发送 HTTP 请求的方式一般有两种, HttpURLConnection 和 HttpClient,关于HttpURLConnection的使用方法能够參考HTTP之利用HttpU ...
- Java实现HttpClient发送GET、POST请求(https、http)
1.引入相关依赖包 jar包下载:httpcore4.5.5.jar fastjson-1.2.47.jar maven: <dependency> <groupId>o ...
- 使用httpclient发送get或post请求
HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建 ...
- HttpClient 发送 HTTP、HTTPS 请求的简单封装
import org.apache.commons.io.IOUtils; import org.apache.http.HttpEntity; import org.apache.http.Http ...
- HttpClient发送Get和Post请求
package JanGin.httpClient.demo; import java.io.IOException; import java.io.UnsupportedEncodingExcept ...
- [java,2018-01-16] HttpClient发送、接收 json 请求
最近需要用到许多在后台发送http请求的功能,可能需要发送json和xml类型的数据. 就抽取出来写了一个帮助类: 首先判断发送的数据类型是json还是xml: import org.dom4j.Do ...
- 读取配置文件的URL,使用httpClient发送Post和Get请求,实现查询快递物流和智能机器人对话
1.主要jar包: httpclient-4.3.5.jar httpcore-4.3.2.jar 2.目录结构如图所示: 3.url.properties文件如下: geturl=http:// ...
- 【httpclient-4.3.1.jar】httpclient发送get、post请求以及携带数据上传文件
1.发送get.post携带参数以及post请求接受JSON数据: package cn.qlq.utils; import java.io.BufferedReader; import java.i ...
- java使用HttpClient 发送get、pot请求
package eidolon.messageback.PostUtil; import java.io.BufferedReader; import java.io.IOException; imp ...
随机推荐
- Leetcode: Best Time to Buy and Sell Stock I, II
思路: 1. 算法导论讲 divide and conquer 时, 讲到过这个例子. 书中的做法是先让 price 数组减去一个值, 然后求解最大连续子数组的和. 分治算法的复杂度为 o(nlogn ...
- js 对象引用传值
1)当变量是一个对象(例如:{}或[]),使用 a = b = {} 这种形式传值的话,会变成会用传值,修改 a 时 b 会相应变化,修改 b 时 a 也一样会相应变化 var a = b = {}; ...
- 分享一句话的同时说说遍历map的常用方法
最近在网上看到一句话,鄙人觉得这是比较经典的一句话,首先要给大家分享哈: 当一个人找不到出路的时候,最好的办法就是将当前能做好的事情做到极致,做到无人能及. Map<String, String ...
- mac 安装mysql 修改密码
我草!!! 上网查资料,安装mysql,一大推废话,简直就是他妈的瞎扯淡,真是能他妈的瞎编,草! 为了不让后面的同学看到那些狗屁不通的资料,我把自己安装mysql的步骤,以及修改mysql密码的方法梳 ...
- xcode 4.6 破解及真机调试
从安卓到IOS,从 eclipse 到xcode跨度还是比较大的.在研究的过程中发现,许多时候不仅仅是C,C++,JAVA和OBJECT-C的区别,相对于编程语言来说,操作习惯和开发工具带来的困惑要 ...
- [干货] 有了微信小程序,谁还学ReactNative?
版权声明:本文由贺嘉原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/145 来源:腾云阁 https://www.qclou ...
- npm更新到最新版本
命令行运行: npm install -g npm
- NodeJS路由(server.js + router.js)
手动路由... server.js 创建http服务器,解析pathname,传递给router处理. var http = require("http"); var url = ...
- java设计模式----外观模式(门面模式)
外观模式主要应用场景在于为复杂的子系统提供一个简单的接口,提高子系统的独立性. 创建DrawerOne类: package facade; public class DrawerOne { publi ...
- thinkCMF的使用!
第一次使用 thinkCMF:在此记录下使用的过程! 后台登录: http://thinkcmf.fyz.com/public/admin 前台:控制器 前台控制器的模板: