2

私は次のリクエストをリクエストしていますが、Androidアプリケーションで例外が発生しています。

URL url = new URL(strURL);
URLConnection urlConnection = url.openConnection();

try {
    HttpURLConnection httpConn = (HttpURLConnection) urlConnection;
    httpConn.setRequestMethod("GET");
    httpConn.connect();

    if (httpConn.getResponseCode() == HttpURLConnection.HTTP_OK) {
        is = httpConn.getInputStream();

    }
} catch (Exception ex) {

    System.out.println(ex);
}

次の例外を取得する

java.net.SocketException: Permission denied
4

3 に答える 3

2

まず、これをマニフェストに入れます。

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

アプリが3.0以降のAndroidバージョンでリリースされる場合は、他のスレッド(オプション1および2)でhttpリクエストを行う必要があることに注意する必要があります。

オプション1(推奨されませんが、機能します:次の行を追加します:

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

しかし、正直に言うと、最初のオプションはお勧めしませんが、機能します。// ================================================ ===========================
オプション2:

このチュートリアルを使用して、適切なASyncTaskを作成しました:http ://www.elvenware.com/charlie/development/android/SimpleHttpGetThread.html

// ================================================ ===========================最終的にASyncTaskを使用しました(オプション2)。

彼らはAndroid3.0以降でネットワーク権限を変更しました

于 2013-01-17T11:18:40.003 に答える
2

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>マニフェストに追加

于 2013-01-17T11:16:50.910 に答える
2

これを manifest.xml に追加します

<!-- For Getting Network permission -->
<uses-permission android:name="android.permission.INTERNET"/>
于 2013-01-17T11:21:18.367 に答える