Android数据存储网络存储数据

 Android提供了通过网络来实现数据的存储和获取的方法。

 我们可以调用WebService返回的数据或是解析HTTP协议实现网络数据交互。

 具体需要熟悉java.net.*,Android.net.*这两个包的内容,详细的类与方法的说明,请参考SDK。

 下面是一个通过地区名称查询该地区的天气预报,以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 params = new ArrayList();
        // 设置一个地区名称
        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();
       }
    }
}

  别忘记了在配置文件中设置访问网络权限:

 

转自: http://www.cnblogs.com/hanyonglu/archive/2012/03/01/2374894.html

 

你可能感兴趣的:(Android开发技术与实践)