在web开发中,我们经常需要模拟post及get请求,现在网上比较多的是使用httpclient3.x,然而httpclient4.x已经发布好几年了,而且4.x之后改名为HttpComponents,显然是今后的趋势.
Apache HttpComponents4.x中的HttpClient是一个很好的工具,它符合HTTP1.1规范,是基于HttpCore类包的实现。但是HttpComponents4.x较之前httpclient3.x的API变化比较大,已经分为HttpClient,HttpCore,HttpAsyncClient等多个组件,在模拟post及get请求时的编码也出现了较大的变化.
下面是httpclient4.3.4模拟get请求的例程
public void requestGet(String urlWithParams) throws Exception {
CloseableHttpClient httpclient = HttpClientBuilder.create().build();
//HttpGet httpget = new HttpGet("http://www.baidu.com/");
HttpGet httpget = new HttpGet(urlWithParams);
//配置请求的超时设置
RequestConfig requestConfig = RequestConfig.custom()
.setConnectionRequestTimeout(50)
.setConnectTimeout(50)
.setSocketTimeout(50).build();
httpget.setConfig(requestConfig);
CloseableHttpResponse response = httpclient.execute(httpget);
System.out.println("StatusCode -> " + response.getStatusLine().getStatusCode());
HttpEntity entity = response.getEntity();
String jsonStr = EntityUtils.toString(entity);//, "utf-8");
System.out.println(jsonStr);
httpget.releaseConnection();
}
httpclient4.3.4模拟post请求的例程
public void requestPost(String url,List<NameValuePair> params) throws ClientProtocolException, IOException {
CloseableHttpClient httpclient = HttpClientBuilder.create().build();
HttpPost httppost = new HttpPost(url);
httppost.setEntity(new UrlEncodedFormEntity(params));
CloseableHttpResponse response = httpclient.execute(httppost);
System.out.println(response.toString());
HttpEntity entity = response.getEntity();
String jsonStr = EntityUtils.toString(entity, "utf-8");
System.out.println(jsonStr);
httppost.releaseConnection();
}
运行post方法时,可以
public static void main(String[] args){
try {
String loginUrl = "http://localhost:8080/yours";
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("name", "zhang"));
params.add(new BasicNameValuePair("passwd", "123"));
requestPost(loginUrl,params);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
最后给出httpcomponents官网的例程
http://hc.apache.org/httpcomponents-core-4.3.x/examples.html
分享到:
相关推荐
描述中提到的链接指向了一个ITEYE博客,虽然内容未给出,但可以推测博主可能分享了关于使用HTTPClient 4.3.X的一些经验,可能包括配置,最佳实践,或者是遇到的问题及解决方案。 标签 "源码" 暗示我们可能会讨论到...
《HttpClient 4.3.x详解及其依赖分析》 HttpClient是一个由Apache基金会开发的Java库,主要用于执行HTTP请求。HttpClient 4.3.x是该库的一个重要版本,它提供了丰富的功能和改进,使得开发者能够更方便地与Web...
例如,在HttpClient 3.x中,代码可能会使用`***mons.httpclient.HttpClient`类和`***mons.httpclient.methods.GetMethod`等,而在4.x版本中,这些都被新的API所替代。程序员需要熟悉`org.apache....
CloseableHttpResponse response = httpClient.execute(httpGet); try { System.out.println(response.getStatusLine()); HttpEntity entity = response.getEntity(); EntityUtils.consume(entity); } finally { ...
5. **使用方法**:使用HttpClient需要导入相关jar包,然后创建HttpClient实例,构造HttpGet或HttpPost对象,设置请求参数,最后通过HttpClient实例执行请求并获取响应。 6. **连接管理**:HttpClient 4.3引入了更...
2013-11-21 15:31 292,890 httpclient-4.0.2.jar 2017-12-20 12:08 351,132 httpclient-4.1.1.jar 2012-08-03 01:45 451,595 httpclient-4.1.2-sources.jar 2012-08-03 01:44 352,254 httpclient-4.1.2.jar 2012-08-...
- **请求方法**:HttpClient 支持GET、POST、PUT、DELETE等多种HTTP方法,以及HEAD、OPTIONS、TRACE等其他标准方法。 - **连接管理**:提供连接池管理,可以有效复用TCP连接,减少网络延迟,提高性能。 - **身份...
8. **多部分表单提交(Multipart Form Data)**:对于POST请求,特别是上传文件时,HttpClient 4.3支持多部分表单数据的构造和发送。 9. **异常处理**:`httpclientUtils`可能会包含对HttpClient抛出的各种异常的...
10. **异步请求**:HttpClient 4.3 引入了异步请求执行器,允许开发者在等待响应的同时执行其他任务,提高程序的效率。 11. **Entity Encapsulation**:HttpClient 支持对请求和响应实体的封装,例如,可以将 JSON ...
这个封裝工具类是对HttpClient 4.3进行的二次开发,旨在简化HTTP请求的处理,解决一些常见的问题,如代理设置、多线程并发请求、SSL安全连接以及GET和POST请求的通用实现。 1. **代理问题**:在进行网络请求时,...
用户可以通过这些接口定制请求头、设置请求方法(GET、POST等)、添加请求实体等。 3. **执行器服务**:`HttpExecuteInterceptor`和`HttpRequestExecutor`允许用户在请求发送前和响应接收后进行自定义处理,实现...
CloseableHttpResponse response = httpClient.execute(httpGet); try { System.out.println(response.getStatusLine()); HttpEntity entity = response.getEntity(); EntityUtils.consume(entity); } finally { ...
- **HttpClient.execute()**:使用此方法发送请求并获取响应。 3. **连接管理**: - **HttpClientBuilder**:用于构建和配置HttpClient实例,可以设置连接池大小、超时时间等。 - **...
httpmime-4.3.jar
6. **示例代码**:"httpclient4.1_examples"压缩包中的示例代码展示了如何使用HTTPClient 4.1.1进行基本的HTTP操作,包括发送GET、POST请求,处理响应,以及设置请求头、处理重定向等。通过分析和运行这些示例,你...
它允许开发者模拟GET和POST等HTTP请求,并可以方便地发送JSON等数据作为请求参数。在本文中,我们将深入探讨如何使用HttpClient进行HTTP请求操作,以及如何处理JSON数据。 首先,我们需要引入HttpClient的相关依赖...
CloseableHttpResponse response = httpclient.execute(httpget); try { // 处理响应 } finally { response.close(); } ``` ##### 3.2 HTTP 请求 每个 HTTP 请求都包含一个请求行,其中包括方法名称、请求的 URI...
CloseableHttpResponse response = httpClient.execute(httpGet); ``` 三、处理HTTP响应 执行请求后,会得到一个`CloseableHttpResponse`对象,从中可以获取HTTP状态码、响应头和响应体。例如: ```java ...
httpclient-android-4.3.5.1.jar,用于解决Android使用高版本httpclient出错的问题,下载完直接放到libs文件夹下,然后右键-build path-add to build path,然后在buildpath configuration 里面勾上,就搞定了