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 }

  经过上面的代码就能够实现上面的效果图了,解释说明还有步骤都写在了代码里面,有什么不明白的能够给我留言,对于这篇博客有什么不对的地方,还望你们多多指导。

相关文章
相关标签/搜索