Android数据的存储方式(六) —— 网络存储数据

前面介绍的几种存储都是将数据存储在本地设备上,除此之外,还有一种存储(获取)数据的方式,通过网络来实现数据的存储和获取。

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

具体需要熟悉java.net.*,Android.net.*这两个包的内容,在这就不赘述了,请大家参阅相关文档。

下面是一个通过地区名称查询该地区的天气预报,以POST发送的方式发送请求到webservicex.net站点,访问WebService.webservicex.net站点上提供查询天气预报的服务。

代码如下:

  
  
  1. package com.android.weather; 
  2. import java.util.ArrayList; 
  3. import java.util.List; 
  4. import org.apache.http.HttpResponse; 
  5. import org.apache.http.NameValuePair; 
  6. import org.apache.http.client.entity.UrlEncodedFormEntity; 
  7. import org.apache.http.client.methods.HttpPost; 
  8. import org.apache.http.impl.client.DefaultHttpClient; 
  9. import org.apache.http.message.BasicNameValuePair; 
  10. import org.apache.http.protocol.HTTP; 
  11. import org.apache.http.util.EntityUtils; 
  12. import android.app.Activity; 
  13. import android.os.Bundle; 
  14. publicclass MyAndroidWeatherActivity extends Activity { 
  15. //定义需要获取的内容来源地址 
  16. privatestaticfinal String SERVER_URL =  
  17.         "http://www.webservicex.net/WeatherForecast.asmx/GetWeatherByPlaceName";  
  18. /** Called when the activity is first created. */ 
  19.     @Override 
  20. publicvoid onCreate(Bundle savedInstanceState) { 
  21. super.onCreate(savedInstanceState); 
  22.         setContentView(R.layout.main); 
  23.         HttpPost request = new HttpPost(SERVER_URL); //根据内容来源地址创建一个Http请求 
  24. // 添加一个变量  
  25.         List<NameValuePair> params = new ArrayList<NameValuePair>();  
  26. // 设置一个地区名称 
  27.         params.add(new BasicNameValuePair("PlaceName""NewYork"));  //添加必须的参数 
  28. try {  
  29. //设置参数的编码 
  30.             request.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));  
  31. //发送请求并获取反馈 
  32.             HttpResponse httpResponse = new DefaultHttpClient().execute(request); 
  33. // 解析返回的内容 
  34. if(httpResponse.getStatusLine().getStatusCode() != 404){  
  35.                String result = EntityUtils.toString(httpResponse.getEntity());  
  36.                System.out.println(result); 
  37.             } 
  38.         } catch (Exception e) { 
  39.             e.printStackTrace(); 
  40.        }  
  41.     } 
  42. }

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值