HttpURLConnection 的问题

敌花师 2014-08-21 10:09:27
代码运行到 connection.connect();会报networkonmainthreadexception
URL postUrl = new URL("http://221.214.177.85/bb2/android_login.aspx?name=123&pwd=123");
HttpURLConnection connection = (HttpURLConnection) postUrl.openConnection();
connection.setDoInput(true);
connection.setRequestMethod("GET");
connection.setUseCaches(false);
connection.setInstanceFollowRedirects(true);
connection.setRequestProperty("Content-Type","text/xml");
connection.connect();
网址http://221.214.177.85/bb2/android_login.aspx?name=123&pwd=123返回的内容如下:
<?xml version="1.0" encoding="utf-8"?>
<root>
<state>false</state>
<msg>用户名或密码不正确!</msg>
<data></data>
</root>
AVD里面的target是:Android 4.0 -API Level14
...全文
56 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
敌花师 2014-08-21
  • 打赏
  • 举报
回复
NetworkOnMainThreadException是说不要在主线程中访问网络,从android3.0版本开始就强制不能在主线程中访问网络,要把访问网络放在独立的线程中。 解决方法如下: 头部增加: import android.os.StrictMode; onCreate()方法里面加上: StrictMode.ThreadPolicy policy=new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); 就可以解决你的问题。另外在类的前面,可能要加上@SuppressLint("NewApi")才行。 在android sdk 2.3以上才有StrictMode类。 在android sdk 4.0版本上,这个问题可能比较常见。
daydreary 2014-08-21
  • 打赏
  • 举报
回复
networkonmainthreadexception 就是说你的网络请求不能放在主线程里做,因为网络请求比较耗费时间会造成主线程UI卡顿,所以都是用多线程来处理的。
敌花师 2014-08-21
  • 打赏
  • 举报
回复
解决了我就爆自己照片

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧