public String doPost(String url, Map<String, String> params) {
String response = null;
log.info("url为:" + url + ",params为:" + params);
HttpClient httpClient = new HttpClient();// 创建一个客户端,类似打开一个浏览器
httpClient.getParams().setContentCharset("utf-8");// 设置编码格式
PostMethod postMethod = new PostMethod(url);// 创建一个post方法,类似在浏览器地址栏中输入一个地址
NameValuePair[] postData = new NameValuePair[params.size()];// POST需要通过NameValuePair类来设置参数名称和它所对应的值
// 设置Http Post数据
if (params != null) {
int count = 0;
for (Map.Entry<String, String> entry : params.entrySet()) {
postData[count] = new NameValuePair(entry.getKey(), entry.getValue());
count++;
}
postMethod.addParameters(postData);
}
try {
log.info("执行post方法开始");
httpClient.executeMethod(postMethod);// 执行,类似于回车键
log.info("执行post方法结束");
log.info("method.getStatusCode()=" + postMethod.getStatusCode());
if (postMethod.getStatusCode() == HttpStatus.SC_OK) {
log.info("获取返回值开始");
response = postMethod.getResponseBodyAsString();
log.info("获取返回值结束,response为:" + response);
}
} catch (Exception e) {
log.error("post发生异常:" + e);
e.printStackTrace();
} finally {
postMethod.releaseConnection();// 释放
log.info("释放链接");
}
return response;
}
对于编码方式可以有以下几种方式,应该都可以的,我只用了其中一种:httpClient.getParams().setContentCharset("utf-8");// TODO
httpClient.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"utf-8");// TODO
postMethod.getParams().setContentCharset("utf-8");// TODO
postMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"utf-8");// TODO
postMethod.setQueryString(EncodingUtil.formUrlEncode(postData, "utf-8"));// TODO
分享到:
相关推荐
import org.apache.http.client.methods.HttpPost; import org.apache.http.conn.scheme.Scheme; import org.apache.http.conn.ssl.SSLSocketFactory; import org.apache.http.impl.client.DefaultHttpClient; ...
org.apache.http jar包 import org.apache.http.Header;...import org.apache.http.client.methods.HttpPost; import org.apache.http.conn.scheme.Scheme; import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.client.methods.HttpPost; import org.apache.http.conn.scheme.Scheme; import org.apache.http.conn.ssl.SSLSocketFactory; import org.apache.http.impl.client.DefaultHttpClient; ...
import org.apache.http.client.methods.HttpPost; import org.apache.http.conn.scheme.Scheme; import org.apache.http.conn.ssl.SSLSocketFactory; import org.apache.http.impl.client.DefaultHttpClient; ...
import org.apache.http.client.methods.HttpPost; import org.apache.http.conn.scheme.Scheme; import org.apache.http.conn.ssl.SSLSocketFactory; import org.apache.http.impl.client.DefaultHttpClient; ...
当我们无法直接引用特定的jar包或者面临jar包冲突时,通过HTTP POST方式调用WebService成为了一种有效的解决方案。本文将深入探讨如何在Java环境中,利用HTTP POST方法调用WebService,并解决可能遇到的问题。 首先...
Apache HTTP 客户端库是Java开发者常用的工具之一,它为执行HTTP协议提供了丰富的功能,包括GET、POST、PUT等多种HTTP方法。这个库的核心部分就是`org.apache.http`包,它包含了处理HTTP请求和响应的各种类和接口。...
Apache HTTP客户端库是Android SDK早期版本中提供的一种方式,它允许开发者方便地执行HTTP请求。然而,从Android API 23(Marshmallow)开始,Apache HTTP库被标记为弃用,尽管在兼容库中仍然可用。本文将深入探讨...
import org.apache.http.client.methods.HttpPost; import org.apache.http.conn.scheme.Scheme; import org.apache.http.conn.ssl.SSLSocketFactory; import org.apache.http.impl.client.DefaultHttpClient; ...
Apache HTTP 客户端库是Java开发者常用的网络通信工具,主要包含了处理HTTP请求和响应的功能。在提供的信息中,我们关注的是两个特定的模块:"org.apache.http.entity.mime" 和 "org.apache.http.legacy"。 首先,`...
Apache HTTP 客户端库是Java开发者在处理HTTP协议时常用的一个强大工具,它提供了丰富的功能,包括HTTP请求的发送、响应的处理以及各种HTTP方法的支持。标题中的"org.apache.HTTP需要的jar包"指的是Apache HTTP组件...
import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; ...
Apache HTTP 客户端库是Java开发者常用的网络通信工具,主要包含了`org.apache.http`相关的类和接口。这个jar包广泛应用于网络爬虫的开发,同时也适用于那些需要与Web服务器进行交互的Android应用,尤其是在处理HTTP...
的引入是为了缓解这种不兼容性,它包含了`org.apache.http`包中的一些关键类,如`HttpClient`, `HttpGet`, `HttpPost`, `NameValuePair`等,使得开发者无需修改大量代码就能继续使用这些类。 在标签中提到的“jar包...
Apache Http是一个广泛使用的开源HTTP客户端库,主要用于Java平台。这个压缩包包含的三个核心组件是:`httpclient-4.5.5.jar`、`httpcore-4.4.6.jar`和`httpmime-4.5.5.jar`,它们在开发与HTTP服务器交互的应用程序...
1. **HTTP方法支持**:包括GET、POST、PUT、DELETE等HTTP请求方法。 2. **连接管理**:可以配置连接池来复用TCP连接,提高性能。 3. **重试和重定向策略**:自动处理HTTP状态码,如3xx重定向和错误状态码的重试。 4....
import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; ...
在Android开发中,由于HttpClient库的稳定性和强大的功能,即使在Android API级别33及更高版本中不再内置,许多开发者依然选择使用Apache HttpClient,包括`org.apache.http.entity.mime`包中的类,来进行网络通信和...