天天看點

http請求傳回并解析json資料

Java代碼  

http請求傳回并解析json資料
  1. public class TestHttpActivity extends Activity {  
  2.   private Button btn_get;  
  3.   private Button btn_post;  
  4.     @Override  
  5.     public void onCreate(Bundle savedInstanceState) {  
  6.         super.onCreate(savedInstanceState);  
  7.         setContentView(R.layout.main);  
  8.         btn_get=(Button)findViewById(R.id.btn_get);  
  9.         btn_post=(Button)findViewById(R.id.btn_post);  
  10.         btn_get.setOnClickListener(listener);  
  11.         btn_post.setOnClickListener(listener);  
  12.     }  
  13.     private OnClickListener listener=new OnClickListener() {  
  14.         @Override  
  15.         public void onClick(View v) {  
  16.             switch (v.getId()) {  
  17.             case R.id.btn_post:  
  18.                 Log.i("TestHttpActivity", "ok");  
  19.                  DefaultHttpClient client = new DefaultHttpClient();   
  20.                  List<NameValuePair> list = new ArrayList<NameValuePair>();    
  21.                  NameValuePair pair1 = new BasicNameValuePair("name", "name0001");    
  22.                  NameValuePair pair2 = new BasicNameValuePair("age", "age0001");    
  23.                  list.add(pair1);    
  24.                  list.add(pair2);    
  25.                  UrlEncodedFormEntity entity=null;  
  26.                 try {  
  27.                     entity = new UrlEncodedFormEntity(list,"UTF-8");  
  28.                 } catch (UnsupportedEncodingException e) {  
  29.                     // TODO Auto-generated catch block  
  30.                     e.printStackTrace();  
  31.                 }    
  32.                  HttpPost post = new HttpPost("http://aaron-pc.wsd.com/Test/testHttp");    
  33.                  post.setEntity(entity);    
  34.                  HttpResponse response=null;  
  35.                  String strResult="";  
  36.                 try {  
  37.                     response = client.execute(post);  
  38.                 } catch (ClientProtocolException e) {  
  39.                     // TODO Auto-generated catch block  
  40.                     e.printStackTrace();  
  41.                 } catch (IOException e) {  
  42.                     // TODO Auto-generated catch block  
  43.                     e.printStackTrace();  
  44.                 }    
  45.                  if(response.getStatusLine().getStatusCode()==200){    
  46.                     try {  
  47.                            strResult = EntityUtils.toString(response.getEntity());     
  48.                     } catch (IllegalStateException e) {  
  49.                         // TODO Auto-generated catch block  
  50.                         e.printStackTrace();  
  51.                     } catch (IOException e) {  
  52.                         // TODO Auto-generated catch block  
  53.                         e.printStackTrace();  
  54.                     }  
  55.                      JSONObject jsonObject = null;  
  56.                     try {  
  57.                         jsonObject = getJSON(strResult);  
  58.                     } catch (JSONException e1) {  
  59.                         // TODO Auto-generated catch block  
  60.                         e1.printStackTrace();  
  61.                     }  
  62.                      String names="";  
  63.                      try {  
  64.                          String data=jsonObject.getString("data");  
  65.                          JSONObject jDat = new JSONObject(data);  
  66.                          if(jDat.get("list")!=null){  
  67.                              JSONArray jarr = jDat.getJSONArray("list");  
  68.                          for (int i = 0; i < jarr.length(); i++) {  
  69.                              JSONObject jsono = (JSONObject) jarr.get(i);   
  70.                              names=names+jsono.getString("name");  
  71.                         }  
  72.                          }  
  73.                         Toast.makeText(TestHttpActivity.this, "code:"+jsonObject.getString("code")+"name:"+names, Toast.LENGTH_SHORT).show();  
  74.                     } catch (JSONException e) {  
  75.                         // TODO Auto-generated catch block  
  76.                         e.printStackTrace();  
  77.                     }    
  78.                  }    
  79.                  else Toast.makeText(TestHttpActivity.this, "POST送出失敗", Toast.LENGTH_SHORT).show();    
  80.                 break;  
  81.             case R.id.btn_get:  
  82.                  DefaultHttpClient client1 = new DefaultHttpClient();   
  83.                  UrlEncodedFormEntity entity1=null;  
  84.                  HttpGet get = new HttpGet("http://aaron-pc.wsd.com/Test/testHttp");    
  85.                  HttpResponse response1=null;  
  86.                  String strResult1="";  
  87.                 try {  
  88.                     response1 = client1.execute(get);  
  89.                 } catch (ClientProtocolException e) {  
  90.                     // TODO Auto-generated catch block  
  91.                     e.printStackTrace();  
  92.                 } catch (IOException e) {  
  93.                     // TODO Auto-generated catch block  
  94.                     e.printStackTrace();  
  95.                 }    
  96.                  if(response1.getStatusLine().getStatusCode()==200){    
  97.                     try {  
  98.                            strResult1 = EntityUtils.toString(response1.getEntity());     
  99.                     } catch (IllegalStateException e) {  
  100.                         // TODO Auto-generated catch block  
  101.                         e.printStackTrace();  
  102.                     } catch (IOException e) {  
  103.                         // TODO Auto-generated catch block  
  104.                         e.printStackTrace();  
  105.                     }  
  106.                      JSONObject jsonObject1 = null;  
  107.                     try {  
  108.                         jsonObject1 = getJSON(strResult1);  
  109.                     } catch (JSONException e1) {  
  110.                         // TODO Auto-generated catch block  
  111.                         e1.printStackTrace();  
  112.                     }  
  113.                      String names="";  
  114.                      try {  
  115.                          String data=jsonObject1.getString("data");  
  116.                          JSONObject jDat1 = new JSONObject(data);  
  117.                          if(jDat1.get("list")!=null){  
  118.                              JSONArray jarr1 = jDat1.getJSONArray("list");  
  119.                          for (int i = 0; i < jarr1.length(); i++) {  
  120.                              JSONObject jsono = (JSONObject) jarr1.get(i);   
  121.                              names=names+jsono.getString("name");  
  122.                         }  
  123.                          }  
  124.                         Toast.makeText(TestHttpActivity.this,  "get請求: code:"+jsonObject1.getString("code")+"name:"+names, Toast.LENGTH_SHORT).show();  
  125.                     } catch (JSONException e) {  
  126.                         // TODO Auto-generated catch block  
  127.                         e.printStackTrace();  
  128.                     }    
  129.                  }    
  130.                  else Toast.makeText(TestHttpActivity.this, "get送出失敗", Toast.LENGTH_SHORT).show();    
  131.                 break;  
  132.             }  
  133.         }  
  134.     };  
  135.     public JSONObject getJSON(String sb) throws JSONException {    
  136.         return new JSONObject(sb);    
  137.     }   
  138. }  

http://284772894.iteye.com/blog/1744114