`
zhchx0827
  • 浏览: 192323 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用HttpClient发送GET请求和带有表单参数的POST请求

    博客分类:
  • Web
 
阅读更多

http://blog.csdn.net/jadyer/article/details/7615830

 

 

  1. package  com.jadyer.util;  
  2.   
  3. import  java.io.IOException;  
  4. import  java.io.UnsupportedEncodingException;  
  5. import  java.util.ArrayList;  
  6. import  java.util.List;  
  7.   
  8. import  org.apache.http.HttpEntity;  
  9. import  org.apache.http.HttpResponse;  
  10. import  org.apache.http.NameValuePair;  
  11. import  org.apache.http.ParseException;  
  12. import  org.apache.http.client.ClientProtocolException;  
  13. import  org.apache.http.client.HttpClient;  
  14. import  org.apache.http.client.entity.UrlEncodedFormEntity;  
  15. import  org.apache.http.client.methods.HttpGet;  
  16. import  org.apache.http.client.methods.HttpPost;  
  17. import  org.apache.http.impl.client.DefaultHttpClient;  
  18. import  org.apache.http.message.BasicNameValuePair;  
  19. import  org.apache.http.util.EntityUtils;  
  20.   
  21. /**  
  22.  * 使用HttpClient模拟HTTP访问  
  23.  * @see ===============================================================================================================================  
  24.  * @see HttpClient代表了一个HTTP客户端,HttpClient接口中定义了大多数基本的HTTP请求执行行为  
  25.  * @see HttpEntity是发送或接收消息的载体,它可以通过HttpResponse.getEntity()获取到  
  26.  * @see HttpConnection代表了一个HTTP连接  
  27.  * @see ===============================================================================================================================  
  28.  * @author http://blog.csdn.net/jadyer  
  29.  * @editor Feb 1, 2012 3:02:27 PM  
  30.  */   
  31. public   class  HttpClientUtil {  
  32.     public   static   void  main(String[] args) throws  Exception{  
  33.         //String requestUrl = "http://123.125.97.xxx:8804/ecpaycus/test/JFB_web_visit.jsp?phoneNo=18600000001";   
  34.         //System.out.println(sendGetRequest(requestUrl));   
  35.         String requestUrl = "http://127.0.0.1:8088/test/web/userac" ;  
  36.         System.out.println(sendPostRequest(requestUrl));  
  37.     }  
  38.       
  39.     /**  
  40.      * 发送GET请求  
  41.      * @param requestUrl 请求的地址(含参数)  
  42.      * @return 响应内容  
  43.      */   
  44.     @SuppressWarnings ( "finally" )  
  45.     public   static  String sendGetRequest(String requestUrl) {  
  46.         long  responseLength =  0 ;        //响应长度   
  47.         String responseContent = null //响应内容   
  48.         HttpClient httpClient = new  DefaultHttpClient();  //创建默认的httpClient实例   
  49.         HttpGet httpGet = new  HttpGet(requestUrl);        //创建HttpGet   
  50.         try  {  
  51.             HttpResponse response = httpClient.execute(httpGet); //执行GET请求   
  52.             HttpEntity entity = response.getEntity();            //获取响应实体   
  53.             if  ( null  != entity) {  
  54.                 responseLength = entity.getContentLength();  
  55.                 responseContent = EntityUtils.toString(entity, "UTF-8" );  
  56.                 EntityUtils.consume(entity); //Consume response content   
  57.             }  
  58.             System.out.println("请求地址: "  + httpGet.getURI());  
  59.             System.out.println("响应状态: "  + response.getStatusLine());  
  60.             System.out.println("响应长度: "  + responseLength);  
  61.             System.out.println("响应内容: "  + responseContent);  
  62.         } catch  (ClientProtocolException e) {  
  63.             //该异常通常是协议错误导致   
  64.             //比如构造HttpGet对象时传入的协议不对(将"http"写成"htp")或者服务器端返回的内容不符合HTTP协议要求等   
  65.             e.printStackTrace();  
  66.         } catch  (ParseException e) {  
  67.             e.printStackTrace();  
  68.         } catch  (IOException e) {  
  69.             //该异常通常是网络原因引起的,如HTTP服务器未启动等   
  70.             e.printStackTrace();  
  71.         } finally  {  
  72.             httpClient.getConnectionManager().shutdown(); //关闭连接,释放资源   
  73.             return  responseContent;  
  74.         }  
  75.     }  
  76.       
  77.     /**  
  78.      * 发送带有表单参数的POST请求  
  79.      * @param requestUrl 请求的地址(不含参数)  
  80.      * @return 响应内容  
  81.      */   
  82.     @SuppressWarnings ( "finally" )  
  83.     public   static  String sendPostRequest(String requestUrl) {  
  84.         long  responseLength =  0 ;        //响应长度   
  85.         String responseContent = null //响应内容   
  86.         HttpClient httpClient = new  DefaultHttpClient();                  //创建默认的httpClient实例   
  87.         HttpPost httpPost = new  HttpPost(requestUrl);                     //创建HttpPost   
  88.         List<NameValuePair> formParams = new  ArrayList<NameValuePair>();  //创建参数队列   
  89.         formParams.add(new  BasicNameValuePair( "username" "jadyer" ));  
  90.         formParams.add(new  BasicNameValuePair( "password" "hongyu" ));  
  91.         try  {  
  92.             httpPost.setEntity(new  UrlEncodedFormEntity(formParams,  "UTF-8" ));  
  93.             HttpResponse response = httpClient.execute(httpPost); //执行POST请求   
  94.             HttpEntity entity = response.getEntity();             //获取响应实体   
  95.             if  ( null  != entity) {  
  96.                 responseLength = entity.getContentLength();  
  97.                 responseContent = EntityUtils.toString(entity, "UTF-8" );  
  98.                 EntityUtils.consume(entity); //Consume response content   
  99.             }  
  100.             System.out.println("请求地址: "  + httpPost.getURI());  
  101.             System.out.println("响应状态: "  + response.getStatusLine());  
  102.             System.out.println("响应长度: "  + responseLength);  
  103.             System.out.println("响应内容: "  + responseContent);  
  104.         } catch  (UnsupportedEncodingException e) {  
  105.             e.printStackTrace();  
  106.         } catch  (ClientProtocolException e) {  
  107.             e.printStackTrace();  
  108.         } catch  (ParseException e) {  
  109.             e.printStackTrace();  
  110.         } catch  (IOException e) {  
  111.             e.printStackTrace();  
  112.         } finally  {  
  113.             httpClient.getConnectionManager().shutdown(); //关闭连接,释放资源   
  114.             return  responseContent;  
  115.         }  
  116.     }  

 

分享到:
评论

相关推荐

    java HttpClient 发送GET请求和带有表单参数的POST请求教程例子

    java HttpClient 发送GET请求和带有表单参数的POST请求教程例子

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

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

    HttpClient发送http请求(post和get)需要的jar包+内符java代码案例+注解详解

    通过上述内容,你应该对使用HttpClient发送HTTP请求有了基本的理解。实践中,可以根据具体需求进行更复杂的定制和配置。在实际项目中,HttpClient是一个强大而灵活的工具,能够帮助你轻松地处理网络通信任务。

    java使用HttpClient发送http请求

    在Java编程中,HttpClient是一个非常重要的工具库,用于发送HTTP请求和处理响应。这个工具广泛应用于各种场景,如数据抓取、API交互等。本文将深入讲解如何使用HttpClient来发送HTTP请求,以及相关的源码分析。 ...

    httpclient发送get请求和post请求demo

    本文将深入探讨如何使用HttpClient进行GET和POST请求,并提供相关的代码示例。 首先,GET请求是最常见的HTTP请求类型,通常用于获取资源。在HttpClient中,发送GET请求可以通过`HttpGet`类实现。以下是一个简单的...

    HttpClient发送http请求(post+get)需要的jar包+内符java代码案例+注解详解

    本篇将详细介绍如何使用HttpClient发送HTTP请求,包括POST和GET方法,同时提供相关的jar包依赖以及Java代码示例,并对关键代码进行注解解释。 一、HttpClient库的引入 在Java项目中,首先需要添加HttpClient的jar包...

    httpclient post方式发送请求

    总结起来,使用Apache HTTPClient库以POST方式发送JSON数据涉及的主要步骤包括:配置HttpClient实例、创建HttpPost对象、构建JSON实体、设置请求头和执行请求。通过这种方式,你可以方便地与Web服务进行交互,传递...

    使用HttpClient发送POST请求,并获取响应内容(附详细步骤).txt

    这个代码的作用是使用HttpClient发送POST请求,...通过学习这个示例,你可以了解到如何使用HttpClient发送不同类型的HTTP请求(如GET、POST、PUT、DELETE等),以及如何处理响应结果(如读取响应体、解析JSON数据等)。

    HttpClientUtil工具类发送get和post请求,支持http和https,支持发送文件

    HttpClient是Java中用于执行HTTP请求的一个强大库,它提供了丰富的功能,可以方便地进行GET、POST请求,并且能够处理复杂的网络交互,包括发送文件等操作。下面我们将详细讨论HttpClientUtil工具类如何实现这些功能...

    使用http发送form表单请求参数.doc

    使用 HTTP 发送 Form 表单请求参数是 Java 中的一种常见的需求,本文详细介绍了如何使用 HTTPClient 库来发送 Form 表单请求参数,并对代码进行了详细的解释。通过本文的学习,读者可以更好地理解如何使用 HTTP 发送...

    httpclient发送post请求.docx

    在本文中,我们将深入探讨如何使用HttpClient发送POST请求,以及处理JSON参数和其他关键点。 1. 创建HttpClient实例: HttpClient的初始化通常涉及构建一个HttpClientBuilder对象,然后调用其build()方法来创建...

    HttpClient发送post请求传输json数据

    首先,理解POST请求:与GET请求不同,POST请求通常用于向服务器发送数据,例如提交表单或上传文件。在我们的场景中,我们发送的是JSON(JavaScript Object Notation)数据,这是一种轻量级的数据交换格式,易于人...

    HttpClient(用CloseableHttpClient发送get/post请求)

    HttpClient(用CloseableHttpClient发送get/post请求)

    http请求工具类HttpClientUtil,get,post请求(csdn)————程序.pdf

    HttpClientUtil 是一个用于发送 HTTP 请求的工具类,主要支持 GET 和 POST 方法。它使用了 Apache HttpClient 库,这是一个强大的 Java 客户端编程工具包,用于处理 HTTP 协议。以下是对类中关键方法和概念的详细...

    HttpClient实现POST GET和文件下载

    它提供了丰富的API,使得开发者可以方便地发送HTTP请求(包括POST和GET)并处理响应,同时还支持文件的上传和下载功能。本文将深入探讨HttpClient如何实现这些功能。 ### POST请求 POST请求通常用于向服务器提交...

    httpclient模拟post请求json封装表单数据的实现方法

    在这个场景中,我们关注的是如何使用 HTTPClient 发送一个 JSON 格式的 POST 请求并封装表单数据。下面将详细介绍这个过程。 首先,我们需要创建一个 `HttpPost` 对象,并指定目标 URL。在给出的代码中,`url` 参数...

    C#Post带参数请求+WebService接口.zip

    当需要向服务器发送带有数据的请求时,POST方法通常比GET更合适,因为它可以处理更大的数据量且数据不会显示在URL中。在C#中,我们可以使用HttpClient类来实现POST请求。以下是一个基本的POST请求步骤: - 创建...

    c# http协议,实现get或post发送请求 并返回内容

    以下是如何使用HttpClient发送GET和POST请求的示例: **GET请求示例:** ```csharp using System.Net.Http; using System.Threading.Tasks; public async Task&lt;string&gt; SendHttpGetRequest(string url) { using ...

    C#的http发送post和get请求源码

    - 在`FrmTestHttpPost`类中,可能会有一个按钮事件,当用户点击按钮时,调用`HttpClient`发送GET或POST请求。请求的结果可以通过`HttpResponseMessage`的`Content`属性读取,然后显示在窗体的某个控件上。 6. **...

Global site tag (gtag.js) - Google Analytics