HttpClient 4.3學習筆記

jopen 10年前發布 | 26K 次閱讀 網絡工具包 HttpClient

package demo.httpclient;

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List;

import org.apache.http.HeaderIterator; import org.apache.http.HttpEntity; import org.apache.http.HttpStatus; import org.apache.http.NameValuePair; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.config.CookieSpecs; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils;

public class HttpClientDemo { public static void main(String[] args) {
CloseableHttpClient httpclient = HttpClients.createDefault(); HttpGet httpget = new HttpGet("

// 設置請求和傳輸超時時間5s,設置cookie策略
RequestConfig requestconfig = RequestConfig.custom().setSocketTimeout(5000)
    .setConnectTimeout(5000).setCookieSpec(CookieSpecs.BEST_MATCH).build();
httpget.setConfig(requestconfig);

System.out.println(httpget.getURI());
// 打印請求信息
System.out.println("Executing request " + httpget.getRequestLine());
System.out.println("------------------------------");

try {
    response = httpclient.execute(httpget);

        System.out.println(response.getStatusLine().toString());
        System.out.println("------------------------------");

    // 頭信息
    HeaderIterator it = response.headerIterator();
    while(it.hasNext()) {
        System.out.println(it.next());
    }
    System.out.println("------------------------------");

    // 判斷訪問的狀態碼
    int statusCode = response.getStatusLine().getStatusCode();
    if(statusCode != HttpStatus.SC_OK) {
        System.err.println("Method failed: " + response.getStatusLine());
    }

// if(statusCode == HttpStatus.SC_OK) { //
// } else if((statusCode == HttpStatus.SC_MOVED_TEMPORARILY) // || (statusCode == HttpStatus.SC_MOVED_PERMANENTLY) // || (statusCode == HttpStatus.SC_SEE_OTHER) // || (statusCode == HttpStatus.SC_TEMPORARY_REDIRECT)) { // //頁面重定向代碼 // }

    HttpEntity entity = response.getEntity();
    StringBuilder pageBuffer = new StringBuilder();
    if(entity != null) {
    InputStream in = entity.getContent();
    BufferedReader br = new BufferedReader(new InputStreamReader(in, "utf-8"));
    String line;
    while((line = br.readLine()) != null) {
        pageBuffer.append(line);
        pageBuffer.append("\n");
    }
    System.out.println(pageBuffer.toString());
    in.close();
    br.close();
    }

    System.out.println("------------------------------");

    HttpPost httpPost = new HttpPost("http://www.weibo.com");

    // 將要POST的數據封包
    List<NameValuePair> nvps = new ArrayList<NameValuePair>();
    nvps.add(new BasicNameValuePair("username", "vip"));
    nvps.add(new BasicNameValuePair("password", "123456"));
    httpPost.setEntity(new UrlEncodedFormEntity(nvps, "utf-8"));

    CloseableHttpResponse response1 = httpclient.execute(httpPost);
    try {
        HttpEntity entity1 = response1.getEntity();
        if(entity != null) {
            System.out.println(EntityUtils.toString(entity1,"UTF-8"));
    }
        EntityUtils.consume(entity1);
    } finally {
        response.close();
    }

} catch(ClientProtocolException e) {
    e.printStackTrace();
} catch(IOException e) {
    e.printStackTrace();
} finally {
    try {
        response.close();
        httpclient.close();
    } catch(IOException e) {
        e.printStackTrace();
    }
    }
}

}</pre>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!