1. 程式人生 > >HttpClient 中的get, post使用示例

HttpClient 中的get, post使用示例

一、Get

示例程式碼
public static void test_httpClient_get(){
HttpClient httpClient = null;
try {
String url = “http://localhost:8080/testget“;

        httpClient = new DefaultHttpClient();

        //連線超時設定,單位毫秒
        httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 10000);

        //讀取超時, 單位毫秒
        httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 60000);

        String param1 = "param_";
        String param2 = "param2";

        //如果不需要傳遞引數,直接使用 HttpGet httpGet = new HttpGet(url)即可。
        List<NameValuePair> list = new ArrayList<NameValuePair>();
        list.add(new BasicNameValuePair("param1", param1));
        list.add(new BasicNameValuePair("param2", param2));

        String getParams = EntityUtils.toString(new UrlEncodedFormEntity(list, HTTP.UTF_8));
        HttpGet httpGet = new HttpGet(url + "?" + getParams);            

        HttpResponse httpResponse = httpClient.execute(httpGet);
        HttpEntity entity = httpResponse.getEntity();
        if (entity != null) {
            Charset respCharset = ContentType.getOrDefault(entity).getCharset();
            String respData = EntityUtils.toString(entity, respCharset);            

            //此處還可以根據狀態判斷返回值,略

            renderText(respData);
        } else {
            renderText("entity is null");
        }            
    }catch (Exception e) {
        e.printStackTrace();
        renderText("error" + e.toString());            
    } finally {
        if (httpClient != null){
            httpClient.getConnectionManager().shutdown();
        }
    }
}

二、Post

示例程式碼
public static void test_httpClient_post(){
HttpClient httpClient = null;
try {
String url = “http://localhost:8080/“;
httpClient = new DefaultHttpClient();

        //連線超時設定,單位毫秒
        httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 10000);

        //讀取超時, 單位毫秒
        httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 60000);

        String param1 = "post_param1";
        String param2 = "post_param2";

        List<NameValuePair> list = new ArrayList<NameValuePair>();
        list.add(new BasicNameValuePair("param1", param1));
        list.add(new BasicNameValuePair("param2", param2));


        HttpPost httpPost = new HttpPost(url);

        //如果不帶引數,以下可略
        HttpEntity paramEntity = new UrlEncodedFormEntity(list, "UTF-8");
        httpPost.setEntity(paramEntity);

        //執行
        HttpResponse httpResponse = httpClient.execute(httpPost);
        HttpEntity entity = httpResponse.getEntity();
        if (entity != null) {
            //狀態,該狀態可用於判斷,此處略
            System.out.println("resp_status:" + httpResponse.getStatusLine().getStatusCode());
            Charset respCharset = ContentType.getOrDefault(entity).getCharset();
            String respData = EntityUtils.toString(entity, respCharset);            

            renderText("status:" + httpResponse.getStatusLine().getStatusCode() + "\r\n" + respData);
        } else {
            renderText("entity is null");
        }            
    }catch (Exception e) {
        e.printStackTrace();
        renderText("error" + e.toString());

    } finally {
        if (httpClient != null){
            httpClient.getConnectionManager().shutdown();
        }
    }
}