Android开发 getResponseCode() 抛出异常

遇到getResponseCode() 抛出异常,先分析异常信息,然后注意检查以下几个方面:
1,是否设置了网络访问权限,如果没有设置过,在AndroidManifest.xml中加入下面的代码:
 
   

2,更多的时候,可能不是上面这个问题,如果是networkonmainthreadexceptio的异常,有两个解决方法:
    (1)不要把网络操作放在了主线程,需要另起线程进行网络操作
 
   

new thread(){ public void run(){
            // your network code...
        } }.start()

    (2)在MainActivity中调用这个类的网络操作方法,可能会导致activity的一些问题,谷歌从在android2.3版本以后,系统增加了一个类:StrictMode。这个类对网络的访问方式进行了一定的改变。 
StrictMode通常用于捕获磁盘访问或者网络访问中与主进程之间交互产生的问题,因为在主进程中,UI操作和一些动作的执行是最经常用到的,它们之 间会产生一定的冲突问题。将磁盘访问和网络访问从主线程中剥离可以使磁盘或者网络的访问更加流畅,提升响应度和用户体验。
如果一定要这样操作的话,需要在MainActivity的onCreate()中加入如下代码:
 
   

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

并且在配置文件中将SDK的最低等级设为11。

你可能感兴趣的:(Android开发 getResponseCode() 抛出异常)