HttpHostConnectException ConnectException connection refused ErrnoException

Habe ich ein Netzwerk von Prozessen in meine Anwendung ein, wo diese Ausnahme tritt auf, und ich weiß nicht, wie dieses Problem zu beheben. Ich bereits angewendet, bestimmte Berechtigungen in mein manifest, und hier ist Sie die Berechtigungen habe ich für meine ganzen app:

<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" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

und die URI, die ich verwende, ist von unserem server in Ihre Globale IP-Adresse ist bereits. Es funktioniert im browser, aber in der app, diese Ausnahme kommt. Hier ist der stack trace:

        08-12 06:15:36.234: W/System.err(862): org.apache.http.conn.HttpHostConnectException: Connection to http://xxx.xx.xxx.xxx:8080 refused
    08-12 06:15:36.324: W/System.err(862):  at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:183)
    08-12 06:15:36.494: W/System.err(862):  at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
    08-12 06:15:36.594: W/System.err(862):  at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
    08-12 06:15:36.785: W/System.err(862):  at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
    08-12 06:15:36.904: W/System.err(862):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
    08-12 06:15:37.014: W/System.err(862):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
    08-12 06:15:37.164: W/System.err(862):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
    08-12 06:15:37.194: W/System.err(862):  at com.android.app.util.Utility.getRequest(Utility.java:42)
    08-12 06:15:37.284: W/System.err(862):  at com.android.app.LoginActivity$LoginTask.doInBackground(LoginActivity.java:440)
    08-12 06:15:37.404: W/System.err(862):  at com.android.app.LoginActivity$LoginTask.doInBackground(LoginActivity.java:1)
    08-12 06:15:37.534: W/System.err(862):  at android.os.AsyncTask$2.call(AsyncTask.java:287)
    08-12 06:15:37.744: W/System.err(862):  at java.util.concurrent.FutureTask.run(FutureTask.java:234)
    08-12 06:15:37.804: W/System.err(862):  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
    08-12 06:15:37.944: W/System.err(862):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
    08-12 06:15:38.044: W/System.err(862):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
    08-12 06:15:38.164: W/System.err(862):  at java.lang.Thread.run(Thread.java:856)
    08-12 06:15:38.364: W/System.err(862): Caused by: java.net.ConnectException: failed to connect to /xxx.xx.xxx.xxx (port 8080): connect failed: ETIMEDOUT (Connection timed out)
    08-12 06:15:38.394: W/System.err(862):  at libcore.io.IoBridge.connect(IoBridge.java:114)
    08-12 06:15:38.664: W/System.err(862):  at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
    08-12 06:15:38.845: W/System.err(862):  at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
    08-12 06:15:38.894: W/System.err(862):  at java.net.Socket.connect(Socket.java:842)
    08-12 06:15:39.085: W/System.err(862):  at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119)
    08-12 06:15:39.154: W/System.err(862):  at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144)
    08-12 06:15:39.184: W/System.err(862):  ... 15 more
    08-12 06:15:39.244: W/System.err(862): Caused by: libcore.io.ErrnoException: connect failed: ETIMEDOUT (Connection timed out)
    08-12 06:15:39.464: W/System.err(862):  at libcore.io.Posix.connect(Native Method)
    08-12 06:15:39.774: W/System.err(862):  at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:85)
    08-12 06:15:39.804: W/System.err(862):  at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
    08-12 06:15:39.894: W/System.err(862):  at libcore.io.IoBridge.connect(IoBridge.java:112)
    08-12 06:15:39.984: W/System.err(862):  ... 20 more

Jede Hilfe wird geschätzt. Danke.

EDIT:
Okay, also hier ist mein Programm:

public static String getRequest(String path){
    String url = http://xxx.xx.xxx.xxx:8080/SampleApi/sample-apis; //Global URL of the API
    String username = "sampleuname";
    String password = "samplepass";

    CredentialsProvider credProvider = new BasicCredentialsProvider();
    credProvider.setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT),
            new UsernamePasswordCredentials(username, password));

    try{
        DefaultHttpClient httpClient = new DefaultHttpClient();
        httpClient.setCredentialsProvider(credProvider);
        HttpGet httpGet = new HttpGet(url + path);
        HttpResponse httpResponse = httpClient.execute(httpGet); //Okay, so the stack trace is pointing in this line

        HttpEntity httpEntity = httpResponse.getEntity();
        if(httpEntity != null){ 
            inStream = httpEntity.getContent(); 
            String jsonString = convertStreamToString(inStream);
            return jsonString;
        }
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    return "Request NULL";
}

und meine Berufung Asynctask:

public class LoginTask extends AsyncTask<String, Void, String> {

    @Override
    protected String doInBackground(String... path) {
        Log.d(Constant.TAG_LOGIN, path[0]);

        String apiRequestReturn = Utility.getRequest(path[0]); //So here's the other line pointed by the stack trace where I called Utility
        if (apiRequestReturn.equals("")) {
            Log.d(Constant.TAG_LOGIN, "WebService request is null");
            return null;
        } else {
            Log.d(Constant.TAG_LOGIN, "WebService request has data");
            return apiRequestReturn;
        }
    }

    @Override
    protected void onPostExecute(String result) {
        super.onPostExecute(null);

        //JSON PARSING
    }
}
  • DefaultClientConnectionOperator.java:183 : kann u post dieser code? & AbstractHttpClient.java
  • Nicht die gleiche Anfrage arbeiten im browser?
  • DefaultClientConnectionOperator.java gehört zu apache: org.apache.http.impl.conn.DefaultClientConnectionOperator @StefandeBruijn ja, es funktioniert über den browser.
  • oh ja tut mit Leid, kann u nach dem code ?
  • Bearbeitet meine post.
  • u r mit getMethod für eine Antwort?rechts
  • Ausgabe dieses (url + Pfad) und prüfen(im browser), ob es die korrekte link ? und
  • ja, die Antwort ist in json
  • Es ist die korrekte link da ich die gleiche URI in den browser und es funktioniert gut, ist aber in der Anwendung nicht.
  • Kann u post, dass der link auf E-mail-vielleicht kann ich helfen
  • Hast du eine Lösung finden?

Schreibe einen Kommentar