今天想在Android下,用okhttp去獲取網(wǎng)頁的內(nèi)容,結(jié)果在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不能再主線程去訪問網(wǎng)絡(luò),需要另起線程去訪問

方法一:

        @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創(chuàng)建個線程,在線程中去httpClient訪問網(wǎng)絡(luò)。