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");
 
 
 
 

验证码: 换一张
 
 
 
 
上一页 1 ... -1 -1 -1 -1 -1 -1 -1 ... -1 下一页
 
 
<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();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值