Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android之HTTP網絡通信--GET傳遞,android--get

Android之HTTP網絡通信--GET傳遞,android--get

編輯:關於android開發

Android之HTTP網絡通信--GET傳遞,android--get


說明

  在做一個項目的時候難免會與服務器打交道,這裡我就做一個小的Demo來簡單的說明一下HTTP的使用,我這裡使用的是圖靈的接口,你也可以登陸www.tuling123.com進行申請。我使用的是上面的示例接口http://www.tuling123.com/openapi/api?key=6*********ddfff&info=今天天氣怎麼樣&loc=北京市中關村&userid=12345678,這裡的接口我就不給大家完全展示出來了,大家自己去申請吧,我只給大家演示一下示例。

接口

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

效果截圖

客戶端的顯示(一)

 

logCat的顯示

 

客戶端的顯示(二)

 


MianActivity的代碼顯示如下:

 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通信

 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 }

  通過上面的代碼就可以實現上面的效果圖了,解釋說明還有步驟都寫在了代碼裡面,有什麼不明白的可以給我留言,對於這篇博客有什麼不對的地方,還望大家多多指導。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved