2016-04-28 8 views
0

アンドロイドデバイスでインターネット接続が可能かどうかを確認しようとしていますが、インターネットに接続するにはプロキシが必要です。プロキシ経由でインターネットに接続できるかどうか確認してください

これは私のコードです:

URL myurl = new URL("http://www.google.com"); 
HttpURLConnection connection; 
InetSocketAddress proxyInet = new InetSocketAddress(session.getUrlProxy(),session.getPortProxy()); 
Proxy proxy = new Proxy(Proxy.Type.HTTP, proxyInet); 
connection = (HttpURLConnection)myurl.openConnection(proxy); 
connection.setConnectTimeout(2000); 
connection.setReadTimeout(2000); 
int responseCode = -1; 
responseCode = connection.getResponseCode(); 
       if (responseCode == HttpURLConnection.HTTP_OK) { 
         connected= true; 
         connection.disconnect(); 
       } 
       else { 
        connection.disconnect(); 
       } 

このコードは、この例外メッセージを返します:プロキシなし

java.net.SocketException: recvfrom failed: ECONNRESET (Connection reset by peer) 
04-28 09:33:38.115 25512-25672/com.asde.minimental W/System.err:  at libcore.io.IoBridge.maybeThrowAfterRecvfrom(IoBridge.java:545) 
04-28 09:33:38.119 25512-25672/com.asde.minimental W/System.err:  at libcore.io.IoBridge.recvfrom(IoBridge.java:509) 
04-28 09:33:38.122 25512-25672/com.asde.minimental W/System.err:  at java.net.PlainSocketImpl.read(PlainSocketImpl.java:488) 
04-28 09:33:38.122 25512-25672/com.asde.minimental W/System.err:  at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:46) 
04-28 09:33:38.125 25512-25672/com.asde.minimental W/System.err:  at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:240) 
04-28 09:33:38.129 25512-25672/com.asde.minimental W/System.err:  at java.io.InputStream.read(InputStream.java:163) 
04-28 09:33:38.135 25512-25672/com.asde.minimental W/System.err:  at java.io.BufferedInputStream.fillbuf(BufferedInputStream.java:142) 
04-28 09:33:38.139 25512-25672/com.asde.minimental W/System.err:  at java.io.BufferedInputStream.read(BufferedInputStream.java:227) 
04-28 09:33:38.142 25512-25672/com.asde.minimental W/System.err:  at libcore.io.Streams.readAsciiLine(Streams.java:201) 
04-28 09:33:38.145 25512-25672/com.asde.minimental W/System.err:  at libcore.net.http.HttpEngine.readResponseHeaders(HttpEngine.java:560) 
04-28 09:33:38.149 25512-25672/com.asde.minimental W/System.err:  at libcore.net.http.HttpEngine.readResponse(HttpEngine.java:813) 
04-28 09:33:38.149 25512-25672/com.asde.minimental W/System.err:  at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:274) 
04-28 09:33:38.149 25512-25672/com.asde.minimental W/System.err:  at libcore.net.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:486) 
04-28 09:33:38.152 25512-25672/com.asde.minimental W/System.err:  at com.asde.minimental.utilities.Utils.isInternetConn(Utils.java:283) 
04-28 09:33:38.152 25512-25672/com.asde.minimental W/System.err:  at com.asde.minimental.net.AsyncUpdater.doInBackground(AsyncUpdater.java:58) 
04-28 09:33:38.155 25512-25672/com.asde.minimental W/System.err:  at com.asde.minimental.net.AsyncUpdater.doInBackground(AsyncUpdater.java:30) 
04-28 09:33:38.155 25512-25672/com.asde.minimental W/System.err:  at android.os.AsyncTask$2.call(AsyncTask.java:287) 
04-28 09:33:38.159 25512-25672/com.asde.minimental W/System.err:  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 
04-28 09:33:38.162 25512-25672/com.asde.minimental W/System.err:  at java.util.concurrent.FutureTask.run(FutureTask.java:137) 
04-28 09:33:38.165 25512-25672/com.asde.minimental W/System.err:  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 
04-28 09:33:38.165 25512-25672/com.asde.minimental W/System.err:  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 
04-28 09:33:38.169 25512-25672/com.asde.minimental W/System.err:  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 
04-28 09:33:38.175 25512-25672/com.asde.minimental W/System.err:  at java.lang.Thread.run(Thread.java:856) 
04-28 09:33:38.179 25512-25672/com.asde.minimental W/System.err: Caused by: libcore.io.ErrnoException: recvfrom failed: ECONNRESET (Connection reset by peer) 
04-28 09:33:38.182 25512-25672/com.asde.minimental W/System.err:  at libcore.io.Posix.recvfromBytes(Native Method) 
04-28 09:33:38.185 25512-25672/com.asde.minimental W/System.err:  at libcore.io.Posix.recvfrom(Posix.java:132) 
04-28 09:33:38.185 25512-25672/com.asde.minimental W/System.err:  at libcore.io.BlockGuardOs.recvfrom(BlockGuardOs.java:164) 
04-28 09:33:38.185 25512-25672/com.asde.minimental W/System.err:  at libcore.io.IoBridge.recvfrom(IoBridge.java:506) 
04-28 09:33:38.185 25512-25672/com.asde.minimental W/System.err: ... 21 more 

このコードは間違っているだろう何

connection = (HttpURLConnection)myurl.openConnection(); 

罰金を実行しますか?

おかげ

EDIT1:私はhttps://stackoverflow.com/にしようとした場合、それは正常に動作します。問題は、リクエストこの権限を入れていない場合は

答えて

0

に達しているGoogleのサーバーであることの後のAndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET" />

の上にそれを書くように思われる(または場合既にHttpURLConnectionのために接続する前にこのプロパティを設定してください。

connection.setRequestProperty("connection", "close"); 
+1

接続前=(HttpURLConnection)myurl.openConnection(proxy); ? – Hanzo

+0

はいはい!それがうまくいかない場合は、この記事、java.net.URLConnectionとHttp Requestのチュートリアルを読んでください。http://stackoverflow.com/questions/2793150/using-java-net-urlconnection-to-fire-and-handle -http-requests –

+0

'connection.connect()'の前に 'connection.setRequestProperty(" connection "、" close ");を追加しましたが、問題は同じです。例外は 'connection.getResponseCode();'によって起動されます。このメソッドを試して自分のサーバー(自分のWeb)に 'POST'リクエストを行うと、それは動作します。何か案が? – Hanzo

関連する問題