Android之數據存儲詳解(三)之網絡存儲數據

前面介紹的幾種存儲都是將數據存儲在本地設備上,除此之外,還有一種存儲(獲取)數據的方式,通過網絡來實現數據的存儲和獲取。我們可以調用WebService返回的數據或是解析HTTP協議實現網絡數據交互。

【以下案例轉載自http://blog.csdn.net/liranke/article/details/7670595
下面是一個通過地區名稱查詢該地區的天氣預報,以POST發送的方式發送請求到webservicex.net站點,訪問WebService.webservicex.net站點上提供查詢天氣預報的服務。

package com.android.weather; 
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;

import android.app.Activity;
import android.os.Bundle;

public class MyAndroidWeatherActivity extends Activity {
    //定義需要獲取的內容來源地址
    private static final String SERVER_URL = 
        "http://www.webservicex.net/WeatherForecast.asmx/GetWeatherByPlaceName"; 


    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        HttpPost request = new HttpPost(SERVER_URL); //根據內容來源地址創建一個Http請求
        // 添加一個變量 
        List<NameValuePair> params = new ArrayList<NameValuePair>(); 
        // 設置一個地區名稱
        params.add(new BasicNameValuePair("PlaceName", "NewYork"));  //添加必須的參數


        try { 
            //設置參數的編碼
            request.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8)); 
            //發送請求並獲取反饋
            HttpResponse httpResponse = new DefaultHttpClient().execute(request);

            // 解析返回的內容
            if(httpResponse.getStatusLine().getStatusCode() != 404){ 
               String result = EntityUtils.toString(httpResponse.getEntity()); 
               System.out.println(result);
            }
        } catch (Exception e) {
            e.printStackTrace();
       } 
    }
}

記得在配置文件中設置訪問網絡權限:

 <uses-permission android:name="android.permission.INTERNET" />
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章