在发出http请求时拒绝权限

时间:2013-01-17 11:15:02

标签: java android android-intent

我正在请求以下请求,我在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

3 个答案:

答案 0 :(得分:2)

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>添加到清单

答案 1 :(得分: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作为final(选项2)。

他们更改了Android 3.0 +中的网络权限

答案 2 :(得分:2)

将其添加到manifest.xml

<!-- For Getting Network permission -->
<uses-permission android:name="android.permission.INTERNET"/>