2016-03-15 44 views
0

當我運行我的android應用程序時,出現以下異常: 我正在進入asynctask,但記錄此異常。Android:AsyncTask中的Java Net Socket異常

03-15 16:49:21.456 16854-16892/com.ashwinbhy.phpwrite W/Ashwin﹕ java.net.SocketException: socket failed: EACCES (Permission denied) 

我已經包括了我的manifest.xml這裏面的權限:

<uses-permission android:name="android.permission.internet"/> 
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
    <uses-permission android:name="android.permission.access_network_state"/> 

的代碼是:

try { 

       URL url = new URL("http://10.0.0.2/tt.php"); 
       HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
       conn.setReadTimeout(10000); 
       conn.setConnectTimeout(15000); 
       conn.setRequestMethod("POST"); 
       conn.setDoInput(true); 
       conn.setDoOutput(true); 

       Uri.Builder builder = new Uri.Builder() 
         .appendQueryParameter("bus_id", busid) 
         .appendQueryParameter("lat", lat) 
         .appendQueryParameter("lon", lon); 

       String query = builder.build().getEncodedQuery(); 

       OutputStream os = conn.getOutputStream(); 
       BufferedWriter writer = new BufferedWriter(
         new OutputStreamWriter(os, "UTF-8")); 
       writer.write(query); 
       writer.flush(); 
       writer.close(); 
       os.close(); 

       conn.connect(); 
      } 
      catch(Exception e){ 
       Log.w("Ashwin",e.toString()+"inside the exception log"); 
       return "error"; 
      } 

可有人請點我要去哪裏錯了?

我addding日誌:

03-15 17:15:42.140 9003-9034/com.ashwinbhy.phpwrite I/System.out﹕ open:http://10.0.0.2/tt.php 
03-15 17:15:42.141 9003-9034/com.ashwinbhy.phpwrite D/libc-netbsd﹕ [getaddrinfo]: hostname=10.0.0.2; servname=(null); cache_mode=(null), netid=0; mark=0 
03-15 17:15:42.141 9003-9034/com.ashwinbhy.phpwrite D/libc-netbsd﹕ [getaddrinfo]: ai_addrlen=0; ai_canonname=(null); ai_flags=4; ai_family=0 
03-15 17:15:42.142 9003-9034/com.ashwinbhy.phpwrite I/System.out﹕ [CDS][DNS] getAllByNameImpl netId = 0 
03-15 17:15:42.142 9003-9034/com.ashwinbhy.phpwrite D/libc-netbsd﹕ [getaddrinfo]: hostname=10.0.0.2; servname=(null); cache_mode=(null), netid=0; mark=0 
03-15 17:15:42.142 9003-9034/com.ashwinbhy.phpwrite D/libc-netbsd﹕ [getaddrinfo]: ai_addrlen=0; ai_canonname=(null); ai_flags=4; ai_family=0 
03-15 17:15:42.143 9003-9034/com.ashwinbhy.phpwrite I/System.out﹕ [CDS]rx timeout:10000 
03-15 17:15:42.143 9003-9034/com.ashwinbhy.phpwrite I/System.out﹕ [socket][3] connection /10.0.0.2:80;LocalPort=55951(15000) 
03-15 17:15:42.143 9003-9034/com.ashwinbhy.phpwrite I/System.out﹕ [CDS]connect[/10.0.0.2:80] tm:15 

回答

1

嘗試把適當的情況下進行的權限。它們區分大小寫。

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

更新

您的IP也是錯誤的。應該是,10.0.2.2。所以你的網址將變爲,

http://10.0.2.2/tt.php 

它應該在模擬器上正常工作。

+0

謝謝。 我沒有得到例外,但我的頁面仍然無法訪問。 我沒有收到任何錯誤。 – ashwinbhy

+0

@ashwinbhy檢查更新。 –

+0

我在本地網絡上運行它10.0.0.2/tt.php從我的瀏覽器工作正常 – ashwinbhy