2013-01-17 173 views
2

我正在請求以下請求,並且我在android應用程序中遇到異常。許可在拒絕HTTP請求時被拒絕

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 
+0

可能重複:http://stackoverflow.com/questions/11576339/java-net-socketexception -permission被拒絕換機器人 – EvZ

回答

2

添加<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>體現

2

首先,把這個清單:

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

如果您的應用程序會在Android上被釋放版本高於3.0,你必須記住你需要製作http請求st在另一個線程中(選項1和2)。

選項1(不推薦,但它的工作原理: 加入這一行:

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

但我不reccomend說實話第一個選項,但它的工作 // ==== ================================================== =====================
選項2:

使用本教程來做出恰當的AsyncTask:http://www.elvenware.com/charlie/development/android/SimpleHttpGetThread.html

// == ================================================== ======================= 作爲最終使用的ASyncTask(選項2)。

他們改變了網絡權限的Android 3.0+

2

添加到您的manifest.xml

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