一 。使用HttpClient 進行GET鏈接php
新建 URIjava
新GET 請求數據結構
新建 HTTP 客戶端post
使用客戶端執行操做編碼
返回處理的結果 url
1. URI,這裏的URI並非URI類,而是String類型的uri字符。spa
String uri = "http://";
2. 新建 GET 請求code
只要用HttpGet類就能夠了orm
HttpGet.HttpGet (String uri );
3. 新建 Http 客戶端對象
通常使用默認的就能夠了
DefaultHttpClient.DefaultHttpClient ()
4. 使用客戶端執行請求
HttpClient.execute (HttpUriRequest request ) throws IOException ,ClientProtocolException
這個 方法返回的是HttpResponse類型,也就是響應、。
5. 處理響應
獲得了HttpResponse後,在網格上的就完成 了,如今在本地進行響應處理。
HttpResponse.getStatusLine () ;//獲得狀態行 HttpResponse.getEntity () ;// 獲得結果
例子:
protected void doGet() { // TODO Auto-generated method stub //新建 URL String url="http://5billion.com.cn/post.php?name=abcd"; //新建 GET 請求 HttpGet httpRequest = new HttpGet (url ); //新建 http客戶端 HttpClient httpClient = new DefaultHttpClient (); //執行請求返回結果 try { HttpResponse httpResponse = httpClient.execute(httpRequest); //判斷結果 if (httpResponse.getStatusLine().getStatusCode()==HttpStatus.SC_OK){ //獲得結果 的類型 String result = EntityUtils.toString(httpResponse.getEntity()); textView.setText(result); }else { textView.setText("應答錯誤 :"+httpResponse.getStatusLine().toString()); } } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
二。使用HttpCLient進行POST鏈接
使用POST鏈接與GET鏈接不一樣的地方參數 的傳遞。在POST中,參數 的傳遞用 NameValuePair 類,實質也就是HashMap。
POST與GET不一樣的地方 在於請求的創建
1 。新建 HttpPost請求
HttpPost.HttpPost( String uri );
2. 新建 保存參數的數據 結構
在POST中傳遞的是NameValuePair類,僅僅保存一個確定是不夠的,因此真正傳遞的是一個列表,表中每個對象 都是一個NameValuePair。以下
新建 一個列表 來保存NameValuePair。
List<NameValuePair> params = new ArrayList <NameValuePair >(); //新建真正 的數據 ,以名值 對的形式保存 BasicNameValuePair.BasicNameValuePair (String name ,String value ); //將名值 對加入 到列表 中 List.add(NameValuePair object);
3. 爲參數 設置編碼 方式
最後將以前 新建 好的List對象 加入 到HttpPost對象 中
UrlEncodedFormEntity.UrlEncodedFormEntity (List <?extends NameValuePair>parameters ,String encoding )throws UnsupportedEncodingException
第一個參數 是要編碼 的參數 ,第二個是設置編碼 的方式 ,能夠使用HTTP.UTF_8, HTTP,UTF_16
4. 將參數 加入 到請求中
HttpEntityEnclosingRequestBase.setEntity (HttpEntity entity );
接下來的工做就同樣了
5.新建 http客戶端
DefaultHttpClient.DefaultHttpClient ()
6. 使用客戶端執行操做
HttpClient.execute (HttpUriRequest request ) throws IOException ,ClientProtocolException
7 處理響應
這裏的處理要按應用的要求 來處理,如將結果以String 顯示
String result - ENtityUtils.toString (httpReqsponse.getEntity()); tv.setText (result );
例子
protected void doPost() { // TODO Auto-generated method stub //新建 一個URL String url ="http://www.baidu.com"; //新建 POST類請求 HttpPost httpRequest = new HttpPost(url ); //新建 要傳遞的數據結構 List <NameValuePair>params = new ArrayList <NameValuePair >(); //新建 鍵值對 BasicNameValuePair pair1 = new BasicNameValuePair ("param","AaBbCcDdEe"); //將數據 加入 到鍵值 對中 params.add(pair1); try { //設置編碼 方式 HttpEntity entity = new UrlEncodedFormEntity (params ,HTTP.UTF_8); httpRequest.setEntity(entity); //新建 http客戶端 HttpClient httpClient = new DefaultHttpClient (); //執行請求,獲得響應 HttpResponse httpResponse = httpClient .execute(httpRequest ); //判斷響應狀態 是否成功 if (httpResponse.getStatusLine().getStatusCode()==HttpStatus.SC_OK){ String result = EntityUtils.toString(httpResponse.getEntity()); textView.setText(result); } } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }