http客户端开发get、Post两种方式

来源:互联网 发布:视频同声翻译软件 编辑:程序博客网 时间:2024/06/10 23:14
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");

原创粉丝点击