Android与服务器端数据交互(http协议整合struts2+android)

发布时间:2011年06月07日      浏览次数:383 次
在android中有时候我们不需要用到本机的SQLite数据库提供数据,更多的时候是从网络上获取数据,那么Android怎么从服务器端获取数据呢?有很多种,归纳起来有:
1:基于Http协议获取数据方法。
2:基于SAOP协议获取数据方法。

一、首页,在WEB服务器上创建一个测试文件(test.php),只显示一个字符串“真的很奇怪,日本人!”。
假如网址为:http://www.hao513.com/test.php


二、接下来在手机客户端里写入以下代码:

public class MainActivity extends Activity {
      /** Called when the activity is first created. */
      //模拟器自己把自己当成localhost了,服务器应该为10.0.2.2
      private static String url="http://www.hao513.com/test.php";
      @Override
      public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            getPDAServerData(url);
      }
      
      /**
      * 请求服务
      * @param url
      */
      private void getPDAServerData(String url){
            HttpClient client=new DefaultHttpClient();
            HttpPost request;
            try {
                  request = new HttpPost(new URI(url));
                  HttpResponse response=client.execute(request);
                  //判断请求是否成功
                  if(response.getStatusLine().getStatusCode()==200){
                        HttpEntity entity=response.getEntity();
                        if(entity!=null){
                              String out=EntityUtils.toString(entity);
                              new AlertDialog.Builder(this).setMessage(out).create().show();
                        }
                  }
      
            }catch (URISyntaxException e) {
                  e.printStackTrace();
            }catch (ClientProtocolException e) {
                  e.printStackTrace();
            }catch (IOException e) {
                  e.printStackTrace();
            }
      }
}

运行结果如下:



成功了吧:当然读者可以根据这个思路扩展下应用。数据方面可以用json,也可以使用xml。android已经提供了JSON的API,struts2中也可以使用JSON插件。自己扩展吧。
免责声明:本站相关技术文章信息部分来自网络,目的主要是传播更多信息,如果您认为本站的某些信息侵犯了您的版权,请与我们联系,我们会即时妥善的处理,谢谢合作!