• 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());
                    
  • 相关阅读:
    引入RabbitMQ后,如何保证全链路数据100%不丢
    使用logstash迁移elasticsearch
    内网代理转发工具
    MSSQL存储过程命令执行
    win10 家庭版升级专业版密钥
    clash TUN模式
    windows实战常用命令
    webshell之jsp免杀
    tmux的使用方法
    钓鱼邮件从入门到放弃
  • 原文地址:https://www.cnblogs.com/zonglonglong/p/4634567.html
Copyright © 2020-2023  润新知