2016-07-04 136 views
1

我搜索了所有解決方案並應用到了我的項目中。但他們沒有工作。我拒絕了此權限。我已將所有可能的權限放入清單文件中。請告訴我我的項目有什麼問題。java.net.SocketException:套接字失敗:EACCES(權限被拒絕)

public static void getGetResponse() { 
     InputStream inputStream = null; 
     try { 
      URL url = new URL("http://120.26.89.113:8080/common/qiniuToken"); 
      HttpURLConnection connection = (HttpURLConnection)url.openConnection(); 
      connection.setRequestMethod("GET");   
      String userPassword = "wehelper:***********"; 
      byte[] encodedBytes = Base64.encode(userPassword.getBytes(), 0); 
      connection.setRequestProperty("Authorization", "Basic " + encodedBytes); 
      connection.connect(); 
      int resCode = connection.getResponseCode(); 
      if (resCode == 200) { 
       inputStream = connection.getInputStream(); 
      } 

      BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); 
      StringBuilder out = new StringBuilder(); 
      String line; 
      while ((line = reader.readLine()) != null) { 
       out.append(line); 
      } 
      System.out.println(out.toString());//Prints the string content read from input stream 
      Log.d("myApp",out.toString()); 
      reader.close(); 

     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

和我的manifest.xml

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/MyMaterialTheme"> 
    <uses-permission android:name="android.permission.INTERNET"/> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
    <activity android:name=".MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

的logcat:

W/System.err: java.net.SocketException: socket failed: EACCES (Permission denied) 
W/System.err:  at libcore.io.IoBridge.socket(IoBridge.java:619) 
W/System.err:  at java.net.PlainSocketImpl.create(PlainSocketImpl.java:198) 
W/System.err:  at java.net.Socket.checkOpenAndCreate(Socket.java:689) 
W/System.err:  at java.net.Socket.setSoTimeout(Socket.java:543) 
W/System.err:  at com.android.okhttp.internal.http.SocketConnector.connectRawSocket(SocketConnector.java:433) 
W/System.err:  at com.android.okhttp.internal.http.SocketConnector.connectCleartext(SocketConnector.java:105) 
W/System.err:  at com.android.okhttp.Connection.connect(Connection.java:1331) 
W/System.err:  at com.android.okhttp.Connection.connectAndSetOwner(Connection.java:1410) 
W/System.err:  at com.android.okhttp.OkHttpClient$1.connectAndSetOwner(OkHttpClient.java:128) 
W/System.err:  at com.android.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:466) 
W/System.err:  at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:447) 
W/System.err:  at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:353) 
W/System.err:  at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:468) 
W/System.err:  at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:118) 
W/System.err:  at com.donghuaxue.spoonhunt.HttpClient.getGetResponse(HttpClient.java:44) 
W/System.err:  at com.donghuaxue.spoonhunt.MainActivity.onCreate(MainActivity.java:42) 
W/System.err:  at android.app.Activity.performCreate(Activity.java:6876) 
W/System.err:  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135) 
W/System.err:  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3207) 
W/System.err:  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3350) 
W/System.err:  at android.app.ActivityThread.access$1100(ActivityThread.java:222) 
W/System.err:  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1795) 
W/System.err:  at android.os.Handler.dispatchMessage(Handler.java:102) 
W/System.err:  at android.os.Looper.loop(Looper.java:158) 
W/System.err:  at android.app.ActivityThread.main(ActivityThread.java:7229) 
W/System.err:  at java.lang.reflect.Method.invoke(Native Method) 
W/System.err:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
W/System.err:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 
W/System.err: Caused by: android.system.ErrnoException: socket failed: EACCES (Permission denied) 
W/System.err:  at libcore.io.Posix.socket(Native Method) 
W/System.err:  at libcore.io.BlockGuardOs.socket(BlockGuardOs.java:282) 
W/System.err:  at libcore.io.IoBridge.socket(IoBridge.java:604) 
W/System.err: ... 27 more 

回答

4

<uses-permission>元素是放錯了地方。他們需要的是<application>元素,作爲根<manifest>元素的直接孩子:

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

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/MyMaterialTheme"> 
    <activity android:name=".MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 
相關問題