0
点赞
收藏
分享

微信扫一扫

http请求返回并解析json数据


1. /*   注意get和post请求的发送区别
2.  * 1、创建HttpGet(或HttpPost)对象,将要请求的URL通过构造方法传入HttpGet(或HttpPost)对象中;
3.    2、使用DefaultHttpClient类的execute方法发送HTTP GET或HTTP POST 请求,并返回HttpResponse对象;
4.    3、通过HttpResponse接口的getEntity方法返回响应信息。
5.  * */
6.   
7. public class TestHttpActivity extends
8. private
9. private
10. @Override
11. public void
12. super.onCreate(savedInstanceState);  
13.         setContentView(R.layout.main);  
14.         btn_get=(Button)findViewById(R.id.btn_get);  
15.         btn_post=(Button)findViewById(R.id.btn_post);  
16.         btn_get.setOnClickListener(listener);  
17.         btn_post.setOnClickListener(listener);  
18.     }  
19. private OnClickListener listener=new
20.           
21. @Override
22. public void
23. switch
24. case
25. "TestHttpActivity", "ok");  
26. new
27. /**NameValuePair是传送给服务器的请求参数    param.get("name") **/
28. new
29. new BasicNameValuePair("name", "name0001");    
30. new BasicNameValuePair("age", "age0001");    
31.                  list.add(pair1);    
32.                  list.add(pair2);    
33. null;  
34. try
35. /**设置编码 **/
36. new UrlEncodedFormEntity(list,"UTF-8");  
37. catch
38. // TODO Auto-generated catch block
39.                     e.printStackTrace();  
40.                 }    
41. /**新建一个post请求**/
42. new HttpPost("http://aaron-pc.wsd.com/Test/testHttp");    
43.                  post.setEntity(entity);    
44. null;  
45. "";  
46. try
47. /**客服端向服务器发送请求**/
48.                     response = client.execute(post);  
49. catch
50. // TODO Auto-generated catch block
51.                     e.printStackTrace();  
52. catch
53. // TODO Auto-generated catch block
54.                     e.printStackTrace();  
55.                 }    
56. /**请求发送成功,并得到响应**/
57. if(response.getStatusLine().getStatusCode()==200){    
58. try
59. /**读取服务器返回过来的json字符串数据**/
60.                            strResult = EntityUtils.toString(response.getEntity());     
61. catch
62. // TODO Auto-generated catch block
63.                         e.printStackTrace();  
64. catch
65. // TODO Auto-generated catch block
66.                         e.printStackTrace();  
67.                     }  
68.                       
69.               
70. null;  
71. try
72. /**把json字符串转换成json对象**/
73.                         jsonObject = getJSON(strResult);  
74. catch
75. // TODO Auto-generated catch block
76.                         e1.printStackTrace();  
77.                     }  
78. "";  
79.                       
80. try
81. /**
82.                           * jsonObject.getString("code") 取出code
83.                           * 比如这里返回的json 字符串为 [code:0,msg:"ok",data:[list:{"name":1},{"name":2}]]
84.                           * **/
85.                            
86. /**得到data这个key**/
87. "data");  
88. /**把data下的数据转换成json对象**/
89. new
90. /**判断data对象下的list是否存在**/
91. if(jDat.get("list")!=null){  
92. /**把list转换成jsonArray对象**/
93. "list");  
94. /**循环list对象**/
95. for (int i = 0; i < jarr.length(); i++) {  
96.                                
97. /** **/
98.                              JSONObject jsono = (JSONObject) jarr.get(i);   
99.                                
100. /**取出list下的name的值 **/
101. "name");  
102.                                
103.                         }  
104.                          }  
105. this, "code:"+jsonObject.getString("code")+"name:"+names, Toast.LENGTH_SHORT).show();  
106. catch
107. // TODO Auto-generated catch block
108.                         e.printStackTrace();  
109.                     }    
110.                          
111.                          
112.                  }    
113. else Toast.makeText(TestHttpActivity.this, "POST提交失败", Toast.LENGTH_SHORT).show();    
114. break;  
115.   
116. case
117. new
118. /**NameValuePair是传送给服务器的请求参数    param.get("name") **/
119.                  
120. null;  
121.                
122. /**新建一个get请求**/
123. new HttpGet("http://aaron-pc.wsd.com/Test/testHttp");    
124. null;  
125. "";  
126. try
127. /**客服端向服务器发送请求**/
128.                     response1 = client1.execute(get);  
129. catch
130. // TODO Auto-generated catch block
131.                     e.printStackTrace();  
132. catch
133. // TODO Auto-generated catch block
134.                     e.printStackTrace();  
135.                 }    
136. /**请求发送成功,并得到响应**/
137. if(response1.getStatusLine().getStatusCode()==200){    
138. try
139. /**读取服务器返回过来的json字符串数据**/
140.                            strResult1 = EntityUtils.toString(response1.getEntity());     
141. catch
142. // TODO Auto-generated catch block
143.                         e.printStackTrace();  
144. catch
145. // TODO Auto-generated catch block
146.                         e.printStackTrace();  
147.                     }  
148.                       
149.               
150. null;  
151. try
152. /**把json字符串转换成json对象**/
153.                         jsonObject1 = getJSON(strResult1);  
154. catch
155. // TODO Auto-generated catch block
156.                         e1.printStackTrace();  
157.                     }  
158. "";  
159.                       
160. try
161. /**
162.                           * jsonObject.getString("code") 取出code
163.                           * 比如这里返回的json 字符串为 [code:0,msg:"ok",data:[list:{"name":1},{"name":2}]]
164.                           * **/
165.                            
166. /**得到data这个key**/
167. "data");  
168. /**把data下的数据转换成json对象**/
169. new
170. /**判断data对象下的list是否存在**/
171. if(jDat1.get("list")!=null){  
172. /**把list转换成jsonArray对象**/
173. "list");  
174. /**循环list对象**/
175. for (int i = 0; i < jarr1.length(); i++) {  
176.                                
177. /** **/
178.                              JSONObject jsono = (JSONObject) jarr1.get(i);   
179.                                
180. /**取出list下的name的值 **/
181. "name");  
182.                                
183.                         }  
184.                          }  
185. this,  "get请求: code:"+jsonObject1.getString("code")+"name:"+names, Toast.LENGTH_SHORT).show();  
186. catch
187. // TODO Auto-generated catch block
188.                         e.printStackTrace();  
189.                     }    
190.                          
191.                          
192.                  }    
193. else Toast.makeText(TestHttpActivity.this, "get提交失败", Toast.LENGTH_SHORT).show();    
194. break;  
195.             }  
196.               
197.         }  
198.     };  
199. public JSONObject getJSON(String sb) throws
200. return new
201.     }   
202.    
203. }  
204.


举报

相关推荐

0 条评论