问题描述:android客户端,.net服务器,我是使用webservice交互。使用登陆模块测试,转递用户名和密码,请求成功与否接口都会返回json数据信息。在模拟器上测试,一切都正常,然后放到手机里面测试,怪了,一点返回数据都没有,不管是成功还是失败都没有返回任何数据。

原因:根据调试信息,截图如下:

可以知道,原因就是不能在主线程里面访问网络,网络请求不应该在主线程中进行,这样会阻塞主线程。要另外开一耳光线程来做网络请求。

解决方法,把网络请求的代码放到新开的线程中执行。我的解决代码如下: new Thread(){         @Override public void run() { // TODO Auto-generated method stub super.run(); //定义登录需要的参数名和参数值 String[] paramsName={"UserName","md5Password","DBName","Server"}; String[] paramsValue={loginName.getText().toString(),MD5.getMD5ofStr(loginPwd.getText().toString()),loginDatabase.getSelectedItem().toString(),loginServer.getSelectedItem().toString()}; //使用webservice请求登录,返回json字符串信息 String result=WebServiceUtil.getDataByParams(Commom.uri,paramsName,paramsValue); Message message=new Message(); Bundle bundle=new Bundle(); bundle.putString("result", result); message.setData(bundle); handler.sendMessage(message); }   }.start();   handler=new Handler(){     @Override     public void handleMessage(Message msg) { // TODO Auto-generated method stub super.handleMessage(msg); resultString=msg.getData().getString("result"); Log.i("Thread()--resultString:", resultString); //定义解析json信息后放入map中的key名,需要和返回的json中的key相同 String[] xkeys= new String[] { "UserID", "LoginName", "UserName"}; //调用JsonParse.JsonStrParse3方法解析json,并返回list ArrayList> loginInfo=JsonParse.JsonStrParse3(resultString, xkeys);   //如果返回的失败的信息,则ArrayList中没有任何的元素,否则ArrayList中就是上面定义的xkeys对应的value信息 if (loginInfo!=null&&loginInfo.size()!=0&&!loginInfo.get(0).toString().trim().equals("")) { //把登陆信息保存在Application里面,只标注是否已经登陆 ((MyApplication)getApplication()).setUserId(loginInfo.get(0).get("UserID").toString()); ((MyApplication)getApplication()).setLoginName(loginInfo.get(0).get("LoginName").toString()); ((MyApplication)getApplication()).setUserName(loginInfo.get(0).get("UserName").toString());   //登录成功后,跳转到住界面 startActivity(new Intent(LoginActivity.this,MainActivity.class)); }else { Toast.makeText(LoginActivity.this, "登录失败", Toast.LENGTH_SHORT).show(); }     } };   好了,运行测试,一切都ok啦。   这篇文章在我的网易博客也发了: http://liangxianningstudy.blog.163.com/blog/static/168842477201332611143772/
以前写在博客园的文章

更多相关文章

  1. Android(安卓)中实现在界面上右划返回上一个界面
  2. Android(安卓)错误信息捕获发送至服务器【原创】
  3. Android中使用Volley开源库进行Http网络请求(GET方式)
  4. 基于Android移动终端的搜索客户端应用【团队项目】
  5. 一起来开发Android的天气软件(一)——功能规格介绍
  6. Android(安卓)crash
  7. Android6.0权限
  8. Android(安卓)错误信息捕获发送至服务器【整理】
  9. 【Android(安卓)Advanced Training - 06】记住登入用户的信息[Le

随机推荐

  1. android onSaveInstanceState的使用方法
  2. Android(安卓)之 监控手机电量
  3. Android(安卓)SMS(一) —— 读取短信
  4. Android(安卓)系统广播动态注册
  5. android中的贪吃蛇源码
  6. android:xlargeScreens="false" Only for
  7. Use Android(安卓)ActivityGroup within
  8. Android(安卓)全屏显示
  9. Android(安卓)-- ActionBar(一)
  10. android,如果某个文件存在就删除