首页SEO优化网站建设趣事分享SEM教程常用代码下载网站建设模板网站设计PHP教程Premiere Pro教程建站教程网站优化JavaScript教程图集关注公众号

使用okhttp报错:android下的android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork错误

今天想在Android下,用okhttp去获取网页的内容,结果在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访问网络。

评论 0

评论功能暂未开放