HttpClient的get和post請求處理

來源:互聯網
上載者:User

標籤:httpclient的get和post請求處理

package cn.test1;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.HttpEntity;import org.apache.http.NameValuePair;import org.apache.http.client.ClientProtocolException;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;/** * 1.建立HttpClient對象 * 2.建立要求方法的執行個體,並指定請求URL,如果需要發送GET請求,建立HttpGet對象;如果需要發送POST請求,建立HttpPost對象 * 3.如果需要發送請求參數,可調用HttpGET或HttpPost共同的setParams(HttpParams params)方法來添加請求參數; *   對於HttpPost對象而言,也可以調用SetEntity(HttpEntity entity)方法來佈建要求參數。 * 4.調用HttpClient對象的execute(HttpUriRequest request)發送請求,該方法返回一個HttpResponse。 * 5.調用HttpResponse的getAllHeaders()、getHeaders(String name)等方法可擷取伺服器的回應標頭; *   調用HttpResponse的getEntity()方法可擷取httpEntity()對象,該對象封裝了伺服器的響應內容。 *   程式可通過該對象擷取伺服器的響應內容。 * 6.釋放串連,無論是否執行方法成功,都必須釋放串連 * */public class Test1 {public static void main(String[] args) {get();post();}private static void post() {//1.建立HttpClient對象CloseableHttpClient httpClient = HttpClients.createDefault();try {//建立HttpGet對象//此處路徑不對哦,瞎寫的HttpPost httpPost = new HttpPost("http://www.baidu.com/login.action");//建立參數隊列List<NameValuePair> params = new ArrayList<NameValuePair>();params.add(new BasicNameValuePair("username", "admin"));params.add(new BasicNameValuePair("password", "123456"));UrlEncodedFormEntity formEntity;formEntity = new UrlEncodedFormEntity(params,"utf-8");//將參數設定到HttpPost對象中httpPost.setEntity(formEntity);System.out.println("執行請求路徑:"+httpPost.getURI());//執行get請求CloseableHttpResponse response = httpClient.execute(httpPost);System.out.println("響應轉檯"+response.getStatusLine());//擷取響應實體HttpEntity entity = response.getEntity();if(entity != null){InputStream is = entity.getContent();String str = convertStreamToString(is);System.out.println("響應內容是:"+str);httpPost.abort();}} catch (ClientProtocolException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}private static void get() {//1.建立HttpClient對象CloseableHttpClient httpClient = HttpClients.createDefault();try {//建立HttpGet對象HttpGet httpGet = new HttpGet("http://www.baidu.com/");System.out.println("執行請求路徑:"+httpGet.getURI());//執行get請求CloseableHttpResponse response = httpClient.execute(httpGet);System.out.println("響應轉檯"+response.getStatusLine());//擷取響應實體HttpEntity entity = response.getEntity();if(entity != null){InputStream is = entity.getContent();String str = convertStreamToString(is);System.out.println("響應內容是:"+str);httpGet.abort();}} catch (ClientProtocolException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}private static String convertStreamToString(InputStream is) {BufferedReader reader = new BufferedReader(new InputStreamReader(is));StringBuilder sb = new StringBuilder();String line = null;try {while((line = reader.readLine()) != null){sb.append(line+"\r\n");}} catch (IOException e) {e.printStackTrace();}finally{try {is.close();} catch (IOException e) {e.printStackTrace();}}return sb.toString();}}


本文出自 “11831428” 部落格,請務必保留此出處http://11841428.blog.51cto.com/11831428/1876229

HttpClient的get和post請求處理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.