2013-05-31 32 views
0

我正在開發一個Android應用程序並調用REST的Web services.It給出了一個錯誤
這是我的日誌Android的REST Web服務調用,連接拒絕問題

05-31 12:23:34.355: W/System.err(766): org.apache.http.conn.HttpHostConnectException: Connection to http://myip:8084 refused 
05-31 12:23:34.365: W/System.err(766): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:183) 
05-31 12:23:34.365: W/System.err(766): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) 
05-31 12:23:34.365: W/System.err(766): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) 
05-31 12:23:34.365: W/System.err(766): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360) 
05-31 12:23:34.375: W/System.err(766): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555) 
05-31 12:23:34.375: W/System.err(766): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 
05-31 12:23:34.375: W/System.err(766): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) 
05-31 12:23:34.375: W/System.err(766): at com.example.locationtracker.RestWSUser.sendThroughHttpGet(RestWSUser.java:38) 
05-31 12:23:34.375: W/System.err(766): at com.example.locationtracker.MainActivity.checkIn(MainActivity.java:38) 
05-31 12:23:34.375: W/System.err(766): at java.lang.reflect.Method.invokeNative(Native Method) 
05-31 12:23:34.375: W/System.err(766): at java.lang.reflect.Method.invoke(Method.java:511) 
05-31 12:23:34.385: W/System.err(766): at android.view.View$1.onClick(View.java:3594) 
05-31 12:23:34.385: W/System.err(766): at android.view.View.performClick(View.java:4204) 
05-31 12:23:34.385: W/System.err(766): at android.view.View$PerformClick.run(View.java:17355) 
05-31 12:23:34.395: W/System.err(766): at android.os.Handler.handleCallback(Handler.java:725) 
05-31 12:23:34.395: W/System.err(766): at android.os.Handler.dispatchMessage(Handler.java:92) 
05-31 12:23:34.395: W/System.err(766): at android.os.Looper.loop(Looper.java:137) 
05-31 12:23:34.395: W/System.err(766): at android.app.ActivityThread.main(ActivityThread.java:5041) 
05-31 12:23:34.395: W/System.err(766): at java.lang.reflect.Method.invokeNative(Native Method) 
05-31 12:23:34.395: W/System.err(766): at java.lang.reflect.Method.invoke(Method.java:511) 
05-31 12:23:34.395: W/System.err(766): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
05-31 12:23:34.405: W/System.err(766): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
05-31 12:23:34.405: W/System.err(766): at dalvik.system.NativeStart.main(Native Method) 
05-31 12:23:34.405: W/System.err(766): Caused by: java.net.ConnectException: socket failed: EACCES (Permission denied) 
05-31 12:23:34.415: W/System.err(766): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:181) 
05-31 12:23:34.415: W/System.err(766): ... 22 more 
05-31 12:23:34.415: W/System.err(766): Caused by: java.net.SocketException: socket failed: EACCES (Permission denied) 
05-31 12:23:34.435: W/System.err(766): at libcore.io.IoBridge.socket(IoBridge.java:583) 
05-31 12:23:34.435: W/System.err(766): at java.net.PlainSocketImpl.create(PlainSocketImpl.java:201) 
05-31 12:23:34.435: W/System.err(766): at java.net.Socket.checkOpenAndCreate(Socket.java:663) 
05-31 12:23:34.445: W/System.err(766): at java.net.Socket.connect(Socket.java:807) 
05-31 12:23:34.445: W/System.err(766): at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119) 
05-31 12:23:34.445: W/System.err(766): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144) 
05-31 12:23:34.445: W/System.err(766): ... 22 more 
05-31 12:23:34.455: W/System.err(766): Caused by: libcore.io.ErrnoException: socket failed: EACCES (Permission denied) 
05-31 12:23:34.465: W/System.err(766): at libcore.io.Posix.socket(Native Method) 
05-31 12:23:34.465: W/System.err(766): at libcore.io.BlockGuardOs.socket(BlockGuardOs.java:181) 

這是我的Java代碼

HttpGet httpGet = new HttpGet("http://myip:8084/rest/loc/test/7225"); 
    HttpParams params = new BasicHttpParams(); 
    HttpConnectionParams.setStaleCheckingEnabled(params, false); 
    HttpConnectionParams.setConnectionTimeout(params, 30000); 
    HttpConnectionParams.setSoTimeout(params, 30000); 
    HttpClient httpClient = new DefaultHttpClient(params); 
    HttpResponse httpResponse = httpClient.execute(httpGet); 
    InputStream inputStream = httpResponse.getEntity().getContent(); 
    BufferedReader bufferedReader = new BufferedReader(
      new InputStreamReader(inputStream)); 
    StringBuilder responseStr = new StringBuilder(); 
    String responseLineStr = null; 
    while ((responseLineStr = bufferedReader.readLine()) != null) { 
     responseStr.append(responseLineStr); 
    } 

這是我的清單文件權限列表

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/> 
<user-permission android:name="android.permission.INTERNET"/> 
<user-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 

什麼可以這樣做的原因,服務工作
感謝

+2

您是在模擬器上還是在設備上檢查此問題?你有沒有在瀏覽器上檢查該網址?還檢查它是否需要任何身份驗證或參數,並且您正在發送.. –

+0

我在模擬器上檢查此問題,並且此網址在我的瀏覽器中正常工作,並且我也爲此代碼提供了相同的URL。沒有從Web服務端的身份驗證,但我不知道有關android部分。謝謝 – user1573690

+1

不,不像android需要發送Rest(任何類型的api/web服務)的任何身份驗證的情況。嘗試調試代碼並檢查一次。 –

回答

1

而是提供與myip模擬器,給10.0.2.2。這應該工作。

+0

它也沒有工作Pradeep – user1573690

1

我解決了這個問題,這是一個權限問題,它真的像一個語法問題,你都可以看到它在我的第一篇文章,在清單文件

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

是錯誤的,它應該是

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

感謝您的回覆,並對我的錯誤感到抱歉