android发送请求失败

pzzc18 2015-11-03 02:38:05
下面是一个执行访问外网接口返回数据的一个方法

private String getPDAServerData(String url){
HttpClient client = new DefaultHttpClient();
HttpPost request;
String out="";
try {
request = new HttpPost(new URI(url));
HttpResponse response = client.execute(request);
// 判断请求是否成功
if (response.getStatusLine().getStatusCode() == 200) {
HttpEntity entity = response.getEntity();
if (entity != null) {
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();
}
return out;
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView1 = (TextView)this.findViewById(R.id.msg);
// id,title,thumb,description,inputtime
String str = getPDAServerData(url);
String []arr = str.split("&");//这里是自定义的字符解析,可以忽略
String html = "";
for(int i=0;i<arr.length;i++){
String []arr2 = arr[i].split("|");
html += "<img src=\""+arr[2]+"\" width=\"80\" height=\"80\"/>"+arr2[1];
if(i%2!=0)
html+="<br>";
}
CharSequence charSequence = Html.fromHtml(html);
textView1.setText(charSequence);

}

运行虚拟机以后,提示 HttpResponse response = client.execute(request); 报错了
AndroidManifest.xml中增加了下面这句话,还是一样。不知道还需要做什么才不报错?
<uses-permission android:name="android.permission.INTERNET" />
...全文
143 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
网络请求还是用框架把。
lxq2061971 2015-11-03
  • 打赏
  • 举报
回复
不要在UI主线程上去进行网络访问,主要是为避免主线程卡死,需要开辟一个线程来进行网络交互,可以参考这个博客的第二个做法http://blog.csdn.net/whucyl/article/details/12024737
pzzc18 2015-11-03
  • 打赏
  • 举报
回复
引用 1 楼 lxq2061971 的回复:
访问网络不用多线程吗?
刚开始学android,请问能否给个案例啊,大概的一个流程就行了,比如继承哪个类,重点是哪里,我好慢慢找资料
lxq2061971 2015-11-03
  • 打赏
  • 举报
回复
访问网络不用多线程吗?

80,350

社区成员

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

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