Android之HTTP網絡通訊--GET傳遞

說明java

  在作一個項目的時候不免會與服務器打交道,這裏我就作一個小的Demo來簡單的說明一下HTTP的使用,我這裏使用的是圖靈的接口,你也能夠登錄www.tuling123.com進行申請。我使用的是上面的示例接口http://www.tuling123.com/openapi/api?key=6*********ddfff&info=今每天氣怎麼樣&loc=北京市中關村&userid=12345678,這裏的接口我就不給你們徹底展現出來了,你們本身去申請吧,我只給你們演示一下示例。android

接口apache

http://www.tuling123.com/openapi/api?key=6*********ddfff&info=今每天氣怎麼樣&loc=北京市中關村&userid=12345678api

效果截圖服務器

客戶端的顯示(一)app

 

logCat的顯示ide

 

客戶端的顯示(二)this

 


MianActivity的代碼顯示以下:url

 1 package com.example.httpdemo;
 2 
 3 import android.os.Bundle;
 4 import android.app.Activity;
 5 import android.view.Menu;
 6 import android.widget.TextView;
 7 
 8 public class MainActivity extends Activity implements HttpDataUrlListener{
 9 
10     private HttpData httpdata;   
11     private TextView tx;
12     
13     @Override
14     protected void onCreate(Bundle savedInstanceState) {
15         super.onCreate(savedInstanceState);
16         setContentView(R.layout.activity_main);
17         httpdata = (HttpData) new HttpData("http://www.tuling123.com/openapi/api?key=6***************dfff&info=今每天氣怎麼樣&loc=北京市中關村&userid=12345678",this).execute();
18         tx = (TextView)findViewById(R.id.txt);
19         
20     }
21 
22     @Override
23     public void GetDataUrl(String data) {
24         // TODO Auto-generated method stub
25         System.out.println(data);
26         tx.setText(data);
27     }
28 
29     
30 
31 }

建立的HttpData類的代碼是用來Http通訊spa

 1 package com.example.httpdemo;
 2 
 3 import java.io.BufferedReader;
 4 import java.io.IOException;
 5 import java.io.InputStream;
 6 import java.io.InputStreamReader;
 7 
 8 import org.apache.http.HttpEntity;
 9 import org.apache.http.HttpResponse;
10 import org.apache.http.client.ClientProtocolException;
11 import org.apache.http.client.HttpClient;
12 import org.apache.http.client.methods.HttpGet;
13 import org.apache.http.impl.client.DefaultHttpClient;
14 
15 import android.os.AsyncTask;
16 
17 public class HttpData extends AsyncTask<String, Void, String>{
18     
19     //1.建立客戶端
20     private HttpClient mhttpclient;
21     //2。指明傳遞的方法
22     private HttpGet mhttpget;
23     //3.作出迴應
24     private HttpResponse mhttpresponse;
25     //4.建立實體
26     private HttpEntity mhttpentity;
27     //5.使用數據流進行數據的傳輸
28     private InputStream in;
29     //6.建立緩衝區
30     private BufferedReader br;
31     //7.儲存全部的數據
32     private StringBuffer sb;
33     
34     //聲明接口
35     private HttpDataUrlListener listener;
36     
37     
38     
39     private String url;
40     
41     public HttpData(){
42     }
43     public HttpData(String url){
44         this.url = url;
45     }
46     public HttpData(String url,HttpDataUrlListener listener){
47         this.url = url;
48         this.listener = listener;
49     }
50     
51     @Override
52     protected String doInBackground(String... params) {
53         // TODO Auto-generated method stub
54         
55         try {
56             //實例化一個客戶端
57             mhttpclient = new DefaultHttpClient();
58             //使用get方法進行傳遞
59             mhttpget = new HttpGet(url);
60             //經過客戶端進行發送
61             mhttpresponse = mhttpclient.execute(mhttpget);
62             //經過response方法獲取實體
63             mhttpentity = mhttpresponse.getEntity();
64             //經過流獲取具體的內容
65             in = mhttpentity.getContent();
66             //建立緩衝區
67             br = new BufferedReader(new InputStreamReader(in));
68             String line = null;
69             sb = new StringBuffer();
70             while ((line = br.readLine())!=null){
71                 sb.append(line);
72             }
73             return sb.toString();
74         } catch (ClientProtocolException e) {
75             // TODO Auto-generated catch block
76             e.printStackTrace();
77         } catch (IOException e) {
78             // TODO Auto-generated catch block
79             e.printStackTrace();
80         }
81         //
82         
83         return null;
84     }
85     
86     @Override
87     protected void onPostExecute(String result) {
88         // TODO Auto-generated method stub
89         listener.GetDataUrl(result);
90         super.onPostExecute(result);
91     }
92 
93 }

建立一個接口HttpDataUrlListener以便於別的類能夠使用這個HTTP類

1 package com.example.httpdemo;
2 
3 public interface HttpDataUrlListener {
4     
5     void GetDataUrl(String data);
6 
7 }

  經過上面的代碼就能夠實現上面的效果圖了,解釋說明還有步驟都寫在了代碼裏面,有什麼不明白的能夠給我留言,對於這篇博客有什麼不對的地方,還望你們多多指導。

相關文章
相關標籤/搜索