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

本文介绍了一个简单的Java程序,该程序利用Apache HttpClient库向指定的Web服务发送GET请求以查询从杭州出发的国内航班时间信息。文章展示了如何设置HTTP客户端、构造URL参数、执行HTTP请求并解析响应。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  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");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值