用closeablehttpclient发送java client post请求求需要哪些jar包

查看: 165|回复: 3
利用HttpClient发送Get和Post请求
该用户从未签到
import java.io.IOE
import java.io.UnsupportedEncodingE
import java.util.ArrayL
import java.util.L
import org.apache.http.HttpE
import org.apache.http.NameValueP
import org.apache.http.client.entity.UrlEncodedFormE
import org.apache.http.client.methods.CloseableHttpR
import org.apache.http.client.methods.HttpG
import org.apache.http.client.methods.HttpP
import org.apache.http.impl.client.CloseableHttpC
import org.apache.http.impl.client.HttpC
import org.apache.http.message.BasicNameValueP
import org.apache.http.util.EntityU
import org.junit.T
public class FirstDemo {
& & /**
& &&&* 通过GET方式发起http请求
& &&&*/
& & @Test
& & public void requestByGetMethod(){
& && &&&//创建默认的httpClient实例
& && &&&CloseableHttpClient httpClient = getHttpClient();
& && &&&try {
& && && && &//用get方法发送http请求
& && && && &HttpGet get = new HttpGet(&&);
& && && && &System.out.println(&执行get请求:....&+get.getURI());
& && && && &CloseableHttpResponse httpResponse =
& && && && &//发送get请求
& && && && &httpResponse = httpClient.execute(get);
& && && && &try{
& && && && && & //response实体
& && && && && & HttpEntity entity = httpResponse.getEntity();
& && && && && & if (null != entity){
& && && && && && &&&System.out.println(&响应状态码:&+ httpResponse.getStatusLine());
& && && && && && &&&System.out.println(&-------------------------------------------------&);
& && && && && && &&&System.out.println(&响应内容:& + EntityUtils.toString(entity));
& && && && && && &&&System.out.println(&-------------------------------------------------&);& && && && && && &&&
& && && && && & }
& && && && &}
& && && && &finally{
& && && && && & httpResponse.close();
& && && && &}
& && &&&} catch (Exception e) {
& && && && &e.printStackTrace();
& && &&&}
& && &&&finally{
& && && && &try{
& && && && && & closeHttpClient(httpClient);
& && && && &} catch (IOException e){
& && && && && & e.printStackTrace();
& && && && &}
& && &&&}
& & }
& &&&
& &&&
& & /**
& &&&* POST方式发起http请求
& &&&*/
& & @Test
& & public void requestByPostMethod(){
& && &&&CloseableHttpClient httpClient = getHttpClient();
& && &&&try {
& && && && &HttpPost post = new HttpPost(&http://localhost/....&);& && && & //这里用上本机的某个工程做测试
& && && && &//创建参数列表
& && && && &List&NameValuePair& list = new ArrayList&NameValuePair&();
& && && && &list.add(new BasicNameValuePair(&j_username&, &admin&));
& && && && &list.add(new BasicNameValuePair(&j_password&, &admin&));
& && && && &//url格式编码
& && && && &UrlEncodedFormEntity uefEntity = new UrlEncodedFormEntity(list,&UTF-8&);
& && && && &post.setEntity(uefEntity);
& && && && &System.out.println(&POST 请求....& + post.getURI());
& && && && &//执行请求
& && && && &CloseableHttpResponse httpResponse = httpClient.execute(post);
& && && && &try{
& && && && && & HttpEntity entity = httpResponse.getEntity();
& && && && && & if (null != entity){
& && && && && && &&&System.out.println(&-------------------------------------------------------&);
& && && && && && &&&System.out.println(EntityUtils.toString(uefEntity));
& && && && && && &&&System.out.println(&-------------------------------------------------------&);
& && && && && & }
& && && && &} finally{
& && && && && & httpResponse.close();
& && && && &}
& && && && &
& && &&&} catch( UnsupportedEncodingException e){
& && && && &e.printStackTrace();
& && &&&}
& && &&&catch (IOException e) {
& && && && &e.printStackTrace();
& && &&&}
& && &&&finally{
& && && && &try{
& && && && && & closeHttpClient(httpClient);& && && && && &
& && && && &} catch(Exception e){
& && && && && & e.printStackTrace();
& && && && &}
& && &&&}
& && && &
& & }
& &&&
& & private CloseableHttpClient getHttpClient(){
& && &&&return HttpClients.createDefault();
& & }
& &&&
& & private void closeHttpClient(CloseableHttpClient client) throws IOException{
& && &&&if (client != null){
& && && && &client.close();
& && &&&}
& & }
}复制代码
该用户从未签到
TA的每日心情开心 09:31签到天数: 4 天[LV.2]偶尔看看I
代码比较清晰,如果可以在其中在加少许注释可能会更好。感谢分享
TA的每日心情开心 09:31签到天数: 4 天[LV.2]偶尔看看I
代码比较清晰,如果可以在其中在加少许注释可能会更好。感谢分享
Beijing Aptech Beida Jade Bird Information Technology Co.,Ltd
北大青鸟IT教育 北京阿博泰克北大青鸟信息技术有限公司 版权所有&&国之画&&&& &&
版权所有 京ICP备号-2
迷上了代码!&&&&httpclient 4.4 jar包
httpclient 4.4 jar包
官网上最新的httpclient 4.4 jar包 包含了CloseableHttpClient
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
开发技术下载排行62847人阅读
HTTPCLIENT(31)
所需jar包:
commons-codec-1.3.jar
commons-httpclient-3.0.jar
commons-logging-1.1.1.jar
package httpC
import java.io.BufferedR
import java.io.IOE
import java.io.InputS
import java.io.InputStreamR
import java.net.URLE
import mons.httpclient.HttpC
import mons.httpclient.HttpM
import mons.httpclient.methods.GetM
import mons.httpclient.methods.PostM
import mons.httpclient.params.HttpMethodP
* @ClassName: SimpleClient
* @Description: TODO(这里用一句话描述这个类的作用)
* @author zhoushun
* @date 日 上午9:35:17
public class SimpleClient {
public static void main(String[] args) throws IOException
HttpClient client = new HttpClient();
//设置代理服务器地址和端口
//client.getHostConfiguration().setProxy(&proxy_host_addr&,proxy_port);
//使用GET方法,如果服务器需要通过HTTPS连接,那只需要将下面URL中的http换成https
// HttpMethod method = new GetMethod(&http://10.1.14.20:8088/workflowController/service/todo/addTask&);
//使用POST方法
PostMethod method = new PostMethod(&http://10.1.14.20:8088/workflowController/service/todo/addTask&);
String s = &http://10.1.48.16:8080/workflow/send-tDocSend/toFormPage.action?modelName=%E6%96%B0%E5%8F%91%E6%96%87%E6%B5%81%E7%A8%8B&incidentNo=65&processName=%E6%96%B0%E5%8F%91%E6%96%87%E6%B5%81%E7%A8%8B&pinstanceId=65&taskUserName=ST/G549&stepName=%E5%8F%91%E6%96%87%E9%80%9A%E7%9F%A5&taskId=eb29ea80ca&taskuser=ST/G549&codeId=13&;
String ms = &{\&app\&: \&standardWork\&,\&type\&: 0,&
+ &\&occurTime\&: \& 11:22:02\&,\&title\&: \&-------流程标题-------\&,&
+ &\&loginName\&: \&ST/G\&,\&status\&: 0,\&removed\&: 0,&
+ & \&typename\&: \&流程名称11\&,&
+ &\&url\&: \&&+URLEncoder.encode(s,&UTF-8&)+&\&,&
+ &\&pname\&: \&主流程名称\&,\&pincident\&: 1,&
+ &\&cname\&: \&子流程实例号\&,\&cincident\&: 1,&
+ &\&stepName\&: \&当前步骤\&,&
+ &\&initiator\&: \&ST/G\&}&;
((PostMethod) method).addParameter(&data&, ms);
HttpMethodParams param = method.getParams();
param.setContentCharset(&UTF-8&);
client.executeMethod(method);
//打印服务器返回的状态
System.out.println(method.getStatusLine());
//打印返回的信息
System.out.println();
InputStream stream = method.getResponseBodyAsStream();
BufferedReader br = new BufferedReader(new InputStreamReader(stream, &UTF-8&));
StringBuffer buf = new StringBuffer();
while (null != (line = br.readLine())) {
buf.append(line).append(&\n&);
System.out.println(buf.toString());
//释放连接
method.releaseConnection();
另附上 新浪微博 上的 调用demo中的一些 方法:
public HttpClient(int maxConPerHost, int conTimeOutMs, int soTimeOutMs,
int maxSize) {
connectionManager = new MultiThreadedHttpConnectionManager();
HttpConnectionManagerParams params = connectionManager.getParams();
params.setDefaultMaxConnectionsPerHost(maxConPerHost);
params.setConnectionTimeout(conTimeOutMs);
params.setSoTimeout(soTimeOutMs);
HttpClientParams clientParams = new HttpClientParams();
// 忽略cookie 避免 Cookie rejected 警告
clientParams.setCookiePolicy(CookiePolicy.IGNORE_COOKIES);
client = new mons.httpclient.HttpClient(clientParams,
connectionManager);
Protocol myhttps = new Protocol(&https&, new MySSLSocketFactory(), 443);
Protocol.registerProtocol(&https&, myhttps);
this.maxSize = maxS
// 支持proxy
if (proxyHost != null && !proxyHost.equals(&&)) {
client.getHostConfiguration().setProxy(proxyHost, proxyPort);
client.getParams().setAuthenticationPreemptive(true);
if (proxyAuthUser != null && !proxyAuthUser.equals(&&)) {
client.getState().setProxyCredentials(
AuthScope.ANY,
new UsernamePasswordCredentials(proxyAuthUser,
proxyAuthPassword));
log(&Proxy AuthUser: & + proxyAuthUser);
log(&Proxy AuthPassword: & + proxyAuthPassword);
private static void log(String message) {
if (DEBUG) {
log.debug(message);
* 处理http getmethod 请求
public Response get(String url) throws WeiboException {
return get(url, new PostParameter[0]);
public Response get(String url, PostParameter[] params)
throws WeiboException {
log(&Request:&);
log(&GET:& + url);
if (null != params && params.length & 0) {
String encodedParams = HttpClient.encodeParameters(params);
if (-1 == url.indexOf(&?&)) {
url += &?& + encodedP
url += &&& + encodedP
GetMethod getmethod = new GetMethod(url);
return httpRequest(getmethod);
public Response get(String url, PostParameter[] params, Paging paging)
throws WeiboException {
if (null != paging) {
List&PostParameter& pagingParams = new ArrayList&PostParameter&(4);
if (-1 != paging.getMaxId()) {
pagingParams.add(new PostParameter(&max_id&, String
.valueOf(paging.getMaxId())));
if (-1 != paging.getSinceId()) {
pagingParams.add(new PostParameter(&since_id&, String
.valueOf(paging.getSinceId())));
if (-1 != paging.getPage()) {
pagingParams.add(new PostParameter(&page&, String
.valueOf(paging.getPage())));
if (-1 != paging.getCount()) {
if (-1 != url.indexOf(&search&)) {
// search api takes &rpp&
pagingParams.add(new PostParameter(&rpp&, String
.valueOf(paging.getCount())));
pagingParams.add(new PostParameter(&count&, String
.valueOf(paging.getCount())));
PostParameter[] newparams =
PostParameter[] arrayPagingParams = pagingParams
.toArray(new PostParameter[pagingParams.size()]);
if (null != params) {
newparams = new PostParameter[params.length
+ pagingParams.size()];
System.arraycopy(params, 0, newparams, 0, params.length);
System.arraycopy(arrayPagingParams, 0, newparams,
params.length, pagingParams.size());
if (0 != arrayPagingParams.length) {
String encodedParams = HttpClient
.encodeParameters(arrayPagingParams);
if (-1 != url.indexOf(&?&)) {
url += &&& + encodedP
url += &?& + encodedP
return get(url, newparams);
return get(url, params);
* 处理http deletemethod请求
public Response delete(String url, PostParameter[] params)
throws WeiboException {
if (0 != params.length) {
String encodedParams = HttpClient.encodeParameters(params);
if (-1 == url.indexOf(&?&)) {
url += &?& + encodedP
url += &&& + encodedP
DeleteMethod deleteMethod = new DeleteMethod(url);
return httpRequest(deleteMethod);
* 处理http post请求
public Response post(String url, PostParameter[] params)
throws WeiboException {
return post(url, params, true);
public Response post(String url, PostParameter[] params,
Boolean WithTokenHeader) throws WeiboException {
log(&Request:&);
log(&POST& + url);
PostMethod postMethod = new PostMethod(url);
for (int i = 0; i & params. i++) {
postMethod.addParameter(params[i].getName(), params[i].getValue());
HttpMethodParams param = postMethod.getParams();
param.setContentCharset(&UTF-8&);
if (WithTokenHeader) {
return httpRequest(postMethod);
return httpRequest(postMethod, WithTokenHeader);
* 支持multipart方式上传图片
public Response multPartURL(String url, PostParameter[] params,
ImageItem item) throws WeiboException {
PostMethod postMethod = new PostMethod(url);
Part[] parts =
if (params == null) {
parts = new Part[1];
parts = new Part[params.length + 1];
if (params != null) {
int i = 0;
for (PostParameter entry : params) {
parts[i++] = new StringPart(entry.getName(),
(String) entry.getValue());
parts[parts.length - 1] = new ByteArrayPart(item.getContent(),
item.getName(), item.getContentType());
postMethod.setRequestEntity(new MultipartRequestEntity(parts,
postMethod.getParams()));
return httpRequest(postMethod);
} catch (Exception ex) {
throw new WeiboException(ex.getMessage(), ex, -1);
public Response multPartURL(String fileParamName, String url,
PostParameter[] params, File file, boolean authenticated)
throws WeiboException {
PostMethod postMethod = new PostMethod(url);
Part[] parts =
if (params == null) {
parts = new Part[1];
parts = new Part[params.length + 1];
if (params != null) {
int i = 0;
for (PostParameter entry : params) {
parts[i++] = new StringPart(entry.getName(),
(String) entry.getValue());
FilePart filePart = new FilePart(fileParamName, file.getName(),
file, new MimetypesFileTypeMap().getContentType(file),
filePart.setTransferEncoding(&binary&);
parts[parts.length - 1] = fileP
postMethod.setRequestEntity(new MultipartRequestEntity(parts,
postMethod.getParams()));
return httpRequest(postMethod);
} catch (Exception ex) {
throw new WeiboException(ex.getMessage(), ex, -1);
public Response httpRequest(HttpMethod method) throws WeiboException {
return httpRequest(method, true);
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:3783120次
积分:37538
积分:37538
排名:第80名
原创:199篇
转载:2022篇
评论:405条
(50)(114)(86)(40)(43)(73)(15)(10)(17)(12)(6)(20)(27)(54)(71)(97)(74)(32)(2)(24)(21)(62)(60)(36)(23)(27)(46)(34)(76)(63)(121)(142)(74)(54)(120)(77)(42)(4)(12)(19)(1)(9)(15)(19)(18)(16)(31)(79)(68)

我要回帖

更多关于 httpclient4 post请求 的文章

 

随机推荐