`
sharong
  • 浏览: 493275 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
D1667ae2-8cfc-3b68-ac7c-5e282789fa4a
论开源
浏览量:8716
7eb53364-fe48-371c-9623-887640be0185
Spring-data-j...
浏览量:13057
社区版块
存档分类
最新评论

httpclient4.3.x模拟post及get请求

阅读更多
在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
1
1
分享到:
评论

相关推荐

    HTTPClient 4.3.X

    描述中提到的链接指向了一个ITEYE博客,虽然内容未给出,但可以推测博主可能分享了关于使用HTTPClient 4.3.X的一些经验,可能包括配置,最佳实践,或者是遇到的问题及解决方案。 标签 "源码" 暗示我们可能会讨论到...

    httpclient4.3.x及其依赖jar包

    《HttpClient 4.3.x详解及其依赖分析》 HttpClient是一个由Apache基金会开发的Java库,主要用于执行HTTP请求。HttpClient 4.3.x是该库的一个重要版本,它提供了丰富的功能和改进,使得开发者能够更方便地与Web...

    HttpClient 3.x to HttpComponents HttpClient 4.x

    例如,在HttpClient 3.x中,代码可能会使用`***mons.httpclient.HttpClient`类和`***mons.httpclient.methods.GetMethod`等,而在4.x版本中,这些都被新的API所替代。程序员需要熟悉`org.apache....

    httpclient-4.3.jar

    CloseableHttpResponse response = httpClient.execute(httpGet); try { System.out.println(response.getStatusLine()); HttpEntity entity = response.getEntity(); EntityUtils.consume(entity); } finally { ...

    HttpClient4.3需要的jar

    5. **使用方法**:使用HttpClient需要导入相关jar包,然后创建HttpClient实例,构造HttpGet或HttpPost对象,设置请求参数,最后通过HttpClient实例执行请求并获取响应。 6. **连接管理**:HttpClient 4.3引入了更...

    httpclient 4.X版本下载有的带源码包

    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 4.3 jar包

    - **请求方法**:HttpClient 支持GET、POST、PUT、DELETE等多种HTTP方法,以及HEAD、OPTIONS、TRACE等其他标准方法。 - **连接管理**:提供连接池管理,可以有效复用TCP连接,减少网络延迟,提高性能。 - **身份...

    httpclient4.3工具类

    8. **多部分表单提交(Multipart Form Data)**:对于POST请求,特别是上传文件时,HttpClient 4.3支持多部分表单数据的构造和发送。 9. **异常处理**:`httpclientUtils`可能会包含对HttpClient抛出的各种异常的...

    httpClient4.3

    10. **异步请求**:HttpClient 4.3 引入了异步请求执行器,允许开发者在等待响应的同时执行其他任务,提高程序的效率。 11. **Entity Encapsulation**:HttpClient 支持对请求和响应实体的封装,例如,可以将 JSON ...

    httpclient4.3 封装工具类

    这个封裝工具类是对HttpClient 4.3进行的二次开发,旨在简化HTTP请求的处理,解决一些常见的问题,如代理设置、多线程并发请求、SSL安全连接以及GET和POST请求的通用实现。 1. **代理问题**:在进行网络请求时,...

    httpClient4.3官方包

    用户可以通过这些接口定制请求头、设置请求方法(GET、POST等)、添加请求实体等。 3. **执行器服务**:`HttpExecuteInterceptor`和`HttpRequestExecutor`允许用户在请求发送前和响应接收后进行自定义处理,实现...

    HttpClient 4.3教程.rar

    CloseableHttpResponse response = httpClient.execute(httpGet); try { System.out.println(response.getStatusLine()); HttpEntity entity = response.getEntity(); EntityUtils.consume(entity); } finally { ...

    httpClient4.3 Jar包 demo

    - **HttpClient.execute()**:使用此方法发送请求并获取响应。 3. **连接管理**: - **HttpClientBuilder**:用于构建和配置HttpClient实例,可以设置连接池大小、超时时间等。 - **...

    httpmime-4.3.jar

    httpmime-4.3.jar

    httpclient4.x官方范例

    6. **示例代码**:"httpclient4.1_examples"压缩包中的示例代码展示了如何使用HTTPClient 4.1.1进行基本的HTTP操作,包括发送GET、POST请求,处理响应,以及设置请求头、处理重定向等。通过分析和运行这些示例,你...

    HttpClient模拟get,post请求并发送请求参数(json等)

    它允许开发者模拟GET和POST等HTTP请求,并可以方便地发送JSON等数据作为请求参数。在本文中,我们将深入探讨如何使用HttpClient进行HTTP请求操作,以及如何处理JSON数据。 首先,我们需要引入HttpClient的相关依赖...

    httpclient 4.3 中文版

    CloseableHttpResponse response = httpclient.execute(httpget); try { // 处理响应 } finally { response.close(); } ``` ##### 3.2 HTTP 请求 每个 HTTP 请求都包含一个请求行,其中包括方法名称、请求的 URI...

    httpclient4.3所需jar包

    CloseableHttpResponse response = httpClient.execute(httpGet); ``` 三、处理HTTP响应 执行请求后,会得到一个`CloseableHttpResponse`对象,从中可以获取HTTP状态码、响应头和响应体。例如: ```java ...

    httpclient-android-4.3.5.1.jar

    httpclient-android-4.3.5.1.jar,用于解决Android使用高版本httpclient出错的问题,下载完直接放到libs文件夹下,然后右键-build path-add to build path,然后在buildpath configuration 里面勾上,就搞定了

Global site tag (gtag.js) - Google Analytics