所有资讯
微信公众号
微信小程序
手机App

android下的android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork错误

浏览量:1345    日期:2016-11-21 01:11
Android关于“NetworkOnMainThreadException”出错提示的原因及解决办法,android下的android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork错误

今天想在Android下,用httpClient去获取网页的内容,结果在httpClient处报了错,

android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.Java:1145), libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84), libcore.io.IoBridge.connectErrno(IoBridge.java:127), libcore.io.IoBridge.connect(IoBridge.java:112), java.NET.PlainSocketImpl.connect(PlainSocketImpl.java:192), java.Net.PlainSocketImpl.connect(PlainSocketImpl.java:459), java.net.Socket.connect(Socket.java:843), org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119), org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144), org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164), org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119), org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360), org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555), org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpCl

问我们的Android大神,得知Android不能再主线程去访问网络,需要另起线程去访问

方法一:


   @TargetApi(Build.VERSION_CODES.GINGERBREAD)

        @SuppressLint("NewApi")

        public static String getHtmlByUrl(String url){  

        StrictMode.ThreadPolicy policy=new StrictMode.ThreadPolicy.Builder().permitAll().build();

        StrictMode.setThreadPolicy(policy);

   HttpHost proxy = new HttpHost(PROXY, PROXY_PORT);
           DefaultHttpClient httpClient = new DefaultHttpClient();


在httpClient访问前,加上红颜色的代码。


方法二:

用java创建个线程,在线程中去httpClient访问网络。


 
成为您更加专业的技术合伙人
服务热线:15165022080
加微信号:15165022080
客服QQ:1828087588、1421667633
电子邮箱:1828087588@qq.com
 
软件开发咨询:15165022080