2015年5月12日 星期二

【Android】http 如何使用GET, POST取得資料

Demo Code -> GitHub :https://github.com/markcoolhu/GetPostDemo

在Android中使用Get及Post的幾個提示

  • 使用org.apache.http套件
  • Androidmanifest.xml 要加入存取網路的授權
  • 清楚知道要使用Get還是Post
  • 如果抓網路資料時間太久,建議把它放到背景執行並加上Loading提示

Get的使用步驟


首頁你要建立一個HttpClient 物件:
HttpClient client = new DefaultHttpClient();
 
接著建立HttpGet物件並傳入網址:
HttpGet get = new HttpGet(_url);
 
當HttpClient執行Get任務後,會傳回HttpResponse :
HttpResponse response = client.execute(get);
 
接下來就可以取得資料實體:
HttpEntity resEntity = response.getEntity();
 
你可以把它轉成字串來使用:
result = EntityUtils.toString(resEntity);
 

Post的使用步驟


一樣先建立HttpClient物件:
HttpClient client = new DefaultHttpClient();
 
接著建立HttpPost物件並傳入網址 :
HttpPost post = new HttpPost(_url);
 
如果有參數的話,可以這樣加入:
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair(_queryKey, _queryValue));
UrlEncodedFormEntity ent = new UrlEncodedFormEntity(params, HTTP.UTF_8);
post.setEntity(ent);
 
 
執行後一樣會傳回HttpResponse:
HttpResponse responsePOST = client.execute(post);
 
 
取得資料實體後可以轉成字串來用:
HttpEntity resEntity = responsePOST.getEntity();
result = EntityUtils.toString(resEntity);
 

在Androidmanifest.xml加入網路存取權限

<uses-permission android:name="android.permission.INTERNET"/>

沒有留言:

張貼留言