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