`
小杨学JAVA
  • 浏览: 943836 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

HttpClient Post和Get请求实例+ 中文参数处理

 
阅读更多
转载自:http://starlight00.blog.163.com/blog/static/465183201210961537965/
package httpclient;
  
  import java.io.IOException;
  import java.net.URLEncoder;
  
  import org.apache.commons.httpclient.HttpClient;
  import org.apache.commons.httpclient.HttpMethod;
  import org.apache.commons.httpclient.NameValuePair;
  import org.apache.commons.httpclient.methods.GetMethod;
  import org.apache.commons.httpclient.methods.PostMethod;
  
  public class HttpClientTest {
  
   public static void main(String[] args) throws Exception{
   String url = "/webservices/DomesticAirline.asmx/getDomesticAirlinesTime";
   String host = "www.webxml.com.cn";
   String param = "startCity="+URLEncoder.encode("杭州", "utf-8")+"&lastCity=&theDate=&userID=";
   HttpClient httpClient = new HttpClient();
   httpClient.getHostConfiguration().setHost(host, 80, "http");
  
   HttpMethod method = getMethod(url, param);
   //HttpMethod method = postMethod(url);
  
   httpClient.executeMethod(method);
  
   String response = method.getResponseBodyAsString();
   //String response = new String(method.getResponseBodyAsString().getBytes("ISO-8859-1"));
   System.out.println(response);
   }
  
   private static HttpMethod getMethod(String url,String param) throws IOException{
   GetMethod get = new GetMethod(url+"?"+param);
   get.releaseConnection();
   return get;
   }
  
   private static HttpMethod postMethod(String url) throws IOException{
   PostMethod post = new PostMethod(url);
   post.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=gbk");
   NameValuePair[] param = { new NameValuePair("startCity","杭州"),
   new NameValuePair("lastCity","沈阳"),
   new NameValuePair("userID",""),
   new NameValuePair("theDate","") } ;
   post.setRequestBody(param);
   post.releaseConnection();
   return post;
   }
  }
  package httpclient;
  
  import java.io.IOException;
  import java.net.URLEncoder;
  
  import org.apache.commons.httpclient.HttpClient;
  import org.apache.commons.httpclient.HttpMethod;
  import org.apache.commons.httpclient.NameValuePair;
  import org.apache.commons.httpclient.methods.GetMethod;
  import org.apache.commons.httpclient.methods.PostMethod;
  
  public class HttpClientTest {
  
  public static void main(String[] args) throws Exception{
  String url = "/webservices/DomesticAirline.asmx/getDomesticAirlinesTime";
  String host = "www.webxml.com.cn";
  String param = "startCity="+URLEncoder.encode("杭州", "utf-8")+"&lastCity=&theDate=&userID=";
  HttpClient httpClient = new HttpClient();
  httpClient.getHostConfiguration().setHost(host, 80, "http");
  
  HttpMethod method = getMethod(url, param);
  //HttpMethod method = postMethod(url);
  
  httpClient.executeMethod(method);
  
  String response = method.getResponseBodyAsString();
  //String response = new String(method.getResponseBodyAsString().getBytes("ISO-8859-1"));
  System.out.println(response);
  }
  
  private static HttpMethod getMethod(String url,String param) throws IOException{
  GetMethod get = new GetMethod(url+"?"+param);
  get.releaseConnection();
  return get;
  }
  
  private static HttpMethod postMethod(String url) throws IOException{
  PostMethod post = new PostMethod(url);
  post.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=gbk");
  NameValuePair[] param = { new NameValuePair("startCity","杭州"),
  new NameValuePair("lastCity","沈阳"),
  new NameValuePair("userID",""),
  new NameValuePair("theDate","")} ;
   post.setRequestBody(param);
   post.releaseConnection();
  return post;
  }
  }
  
  
  如果PostMethod提交的是中文字符,需要加上相应的编码格式:
  post.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=gbk");
  
  如果GetMethod提交的参数有中文字符,需要先转换成utf-8格式:
  URLEncoder.encode("杭州", "utf-8");
 
 
 
 

 
 
 
 
<script type="text/javascript"></script><script type="text/javascript"></script>
 

 public static String getJsonData(String url, String data) throws Exception{ Integer statusCode = -1;
// Create HttpClient Object
DefaultHttpClient client = new DefaultHttpClient();
// Send data by post method in HTTP protocol,use HttpPost instead of
// PostMethod which was occurred in former version
HttpPost post = new HttpPost(url);
// Construct a string entity
StringEntity entity = new StringEntity(data,"UTF-8");
entity.setContentType("application/json;charset=UTF-8");
// Set XML entity
post.setEntity(entity);
// Set content type of request header
post.setHeader("accept", "application/json");
post.setHeader("Content-Type", "application/json;charset=UTF-8");
// Execute request and get the response
HttpResponse response = client.execute(post);

// Response Header -StatusLine - status code
statusCode = response.getStatusLine().getStatusCode(); if (statusCode != HttpStatus.SC_OK) {
throw new HttpException("Http Status is error."); HttpEntity entityRsp = response.getEntity();
StringBuffer result = new StringBuffer();
BufferedReader rd = new BufferedReader(new InputStreamReader(entityRsp
.getContent(), HTTP.UTF_8));
String tempLine = rd.readLine();
while (tempLine != null) {
result.append(tempLine);
tempLine = rd.readLine();
}

if (entityRsp != null) {
entityRsp.consumeContent(); return result.toString();

分享到:
评论

相关推荐

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

    ### Java HttpClient 发送GET请求和带有表单参数的POST请求详解 #### 一、概述 在Java编程中,处理HTTP请求是一项常见的需求,特别是在与Web服务进行交互时。Apache HttpClient库提供了一种强大的方法来执行HTTP...

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

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

    HttpClient实现POST GET和文件下载

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

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

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

    httpclient发送get请求和post请求demo

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

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

    在C#编程中,HTTP(超文本传输协议)是用于客户端和服务器之间通信的主要协议,主要涉及GET和POST两种常见的请求方法。本文将详细介绍如何在C#中实现这两种请求,并结合给定的文件名,推测这是一个简单的C#桌面应用...

    MFC的HttpClient的Get和Post方法

    你可以通过阅读和分析这两个文件,了解在实际项目中如何具体实现MFC的HttpClient GET和POST请求。 总结来说,MFC的HttpClient使得开发者能够方便地与HTTP服务器交互,执行GET和POST请求。通过理解HTTP协议的基本...

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

    - 注意线程安全问题,HttpClient对象通常不是线程安全的,可能需要为每个请求创建新的HttpClient实例,或者使用线程池和HttpRoutePlanner。 在提供的压缩包中,你可能会找到上述步骤的详细代码示例,以及关于如何...

    httpclient post json 数据

    其次,HttpClient是C#中处理HTTP请求的标准库,它提供了发送各种HTTP请求的方法,包括GET、POST、PUT等。对于POST请求,我们通常用来提交数据到服务器,例如创建新的资源或更新已有资源。 要使用HttpClient发送JSON...

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

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

    Httpclient+testng接口测试小例子

    3. **构建HTTP请求**:使用HttpClient提供的方法,如`HttpGet`、`HttpPost`等,根据需求创建GET或POST请求。例如,为执行GET请求,可以创建一个`HttpGet`对象,并设置目标URL。 4. **配置请求头**:如果接口需要...

    HttpClient (POST GET PUT)请求

    其中,`HttpClient`类负责管理连接池和执行策略,`HttpRequestExecutor`处理请求的执行,`HttpClientConnectionManager`管理HTTP连接。当调用`execute`方法时,HttpClient会根据配置创建新的连接或复用已有的连接,...

    对于C#(HttpClient)方式网络请求的封装

    1. **HttpClient的基本使用**:介绍HttpClient类的基本概念,包括如何创建实例,设置请求头,以及发送GET和POST请求。 2. **封装的设计**:讨论如何设计一个网络请求的通用接口或类,比如定义方法如`SendGetAsync`...

    jsp 中HttpClient中的POST方法实例详解.docx

    在Web开发中,特别是使用JSP(Java Server Pages)进行服务器端编程时,经常需要通过HTTP客户端库(如HttpClient)来发起网络请求,包括GET和POST请求。其中,POST请求通常用于向服务器提交数据,例如用户表单数据的...

    JAVA发送HttpClient请求及接收请求完整代码实例

    在本实例中,我们将深入探讨如何使用HttpClient来发送请求以及处理返回的数据。 首先,让我们了解HttpClient的基本用法。Apache HttpClient库提供了一个`CloseableHttpClient`接口,它是执行HTTP请求的主要入口点。...

    完整的HttpClient的get和post使用方法实例(java源代码)

    在这个实例中,我们将深入理解如何使用HttpClient进行GET和POST请求。 **一、HttpClient的GET请求** GET请求是最基础的HTTP请求方式,用于从服务器获取资源。在HttpClient中,可以通过`HttpGet`类来创建GET请求。...

    C/C++利用Boost库发送POST/GET请求

    http协议是互联网上应用最为广泛的一种网络协议,他在接口中扮演着重要的角色,Post/Get请求,想必大家都有所耳闻,我们一起利用Boost::Asio库来实现Post/Get请求的发送。 VS2013 文章地址:...

    HttpClient实例+必备3个jar包

    - 构建HttpGet或HttpPost对象,设置URL和请求参数。 - 执行请求,如`CloseableHttpResponse response = httpclient.execute(httpget);` - 处理响应,如读取响应状态码、获取响应头和响应体。 - 关闭资源,如`...

    C# 使用Get和Post请求获取数据

    在IT行业中,C#是一种广泛使用的编程语言,特别是在开发Windows应用程序、Web服务和游戏等领域。在Web开发中,与服务器进行交互的一个...通过理解和熟练掌握GET和POST请求的使用,可以更高效地开发和维护Web应用程序。

Global site tag (gtag.js) - Google Analytics