android,安卓get请求的提交以及我遇到的异常

首先说明 我是安卓4.0以上的版本,这个时候直接用网上的代码会报错的,先赋上网上的普遍代码

 1 String uri = "http://url";
 2 HttpGet httpGet = new HttpGet(uri);
 3 Log.e("zllmsg","new httpGet");
 4 try {
 5 HttpResponse hr = new DefaultHttpClient().execute(httpGet);
 6 int returnCode = hr.getStatusLine().getStatusCode();
 7 if(returnCode==200){//200就是返回了正常的时候
 8 Log.e("zllmsg", "woshi 200");
 9 String fanhuijieguo = EntityUtils.toString(hr.getEntity());//获取服务器返回的东西
10 Log.e("zllmsg",fanhuijieguo);
11                         
12 }else{
13 Log.e("zllmsg", "woshi no");
14 }
15 } catch (ClientProtocolException e) {
16 // TODO Auto-generated catch block
17 Log.e("zllmsg", e.getMessage());
18 } catch (IOException e) {
19 // TODO Auto-generated catch block
20 Log.e("zllmsg", e.getMessage());
21 }

这个时候如果是4.0之前的,应该没什么问题,如果是4.0以后会报错,网上说是因为4.0已经不允许在主线程去访问网络,是为了防止程序假死还是什么的,反正意思就是另开一个线程去搞,所以就在上面代码的前面加上以下代码就好了,具体不是太明白意思,大概就是另开一个线程之类的

StrictMode.setThreadPolicy (new StrictMode.ThreadPolicy.Builder().detectDiskReads().detectDiskWrites().detectNetwork() .penaltyLog().build());
StrictMode. setVmPolicy(new StrictMode.VmPolicy.Builder().detectLeakedSqlLiteObjects().penaltyLog().penaltyDeath().build());
                

 

posted @ 2015-07-09 23:44  西瓜霜  阅读(636)  评论(0编辑  收藏  举报