您的位置:首页 > 理论基础 > 计算机网络

Android数据存储网络存储数据

2012-06-17 11:59 399 查看
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<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" />

转自: http://www.cnblogs.com/hanyonglu/archive/2012/03/01/2374894.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: