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