0

使用请求方法HttpURLConnection,我可以使用“ https://www.myexample.com/login?u=test&p=test123 ”而不是“ http://dev.myexample.com/login?u=test&pGET ”连接到我的 REST api =测试123 “。

我可以在同一设备上的默认 android 浏览器中看到“损坏”的 URL,它给了我预期的XML响应,所以我不确定为什么我会ECONNREFUSED在我的应用程序中收到。我想自己解决这个问题,但我什至不确定问题是什么!有任何想法吗?

04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err: java.net.ConnectException: failed to connect to dev.lakewoodchurch.com/92.242.xx.xx (port 443): connect failed: ECONNREFUSED (Connection refused)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at libcore.io.IoBridge.connect(IoBridge.java:124)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:456)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at java.net.Socket.connect(Socket.java:882)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at com.android.okhttp.internal.Platform.connectSocket(Platform.java:139)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at com.android.okhttp.Connection.connect(Connection.java:148)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:276)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:211)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:373)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:106)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at com.android.okhttp.internal.http.DelegatingHttpsURLConnection.connect(DelegatingHttpsURLConnection.java:89)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at com.android.okhttp.internal.http.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:25)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at myexample.android.phone.MyApp.XMLParser.getXMLFromURLGet(XMLParser.java:185)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at myexample.android.phone.MyApp.Login$1$1.run(Login.java:133)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at myexample.android.phone.MyApp.GenericAsyncTask.doInBackground(GenericAsyncTask.java:15)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at myexample.android.phone.MyApp.GenericAsyncTask.doInBackground(GenericAsyncTask.java:5)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at android.os.AsyncTask$2.call(AsyncTask.java:288)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at java.lang.Thread.run(Thread.java:818)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err: Caused by: android.system.ErrnoException: connect failed: ECONNREFUSED (Connection refused)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at libcore.io.Posix.connect(Native Method)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:111)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at libcore.io.IoBridge.connectErrno(IoBridge.java:137)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at libcore.io.IoBridge.connect(IoBridge.java:122)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:   ... 21 more
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.StringBuilder.toString()' on a null object reference
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at myexample.android.phone.MyApp.XMLParser.getXMLFromURLGet(XMLParser.java:228)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at myexample.android.phone.MyApp.Login$1$1.run(Login.java:133)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at myexample.android.phone.MyApp.GenericAsyncTask.doInBackground(GenericAsyncTask.java:15)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at myexample.android.phone.MyApp.GenericAsyncTask.doInBackground(GenericAsyncTask.java:5)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at android.os.AsyncTask$2.call(AsyncTask.java:288)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
04-05 18:41:15.890 2158-13245/myexample.android.phone.MyApp W/System.err:     at java.lang.Thread.run(Thread.java:818)

如果你想看到这个:

public static String getXMLFromURLGet(String url, HashMap<String,String> params) {
    URI uri = XMLParser.encodeUrl(url);

    String xml = null;
    URL link;
    BufferedReader reader = null;
    StringBuilder stringBuilder=null;

    try {
        // convert params to string
        if(params != null && params.size() > 0) {
            String op = "?";
            for(HashMap.Entry<String,String> entry : params.entrySet()) {
                url += op + entry.getKey() + "=" + URLEncoder.encode(entry.getValue(), "UTF-8");
                op = "&";
            }
        }

        Log.i("XMLParser", "Get URL: " + url);
        link = new URL(url);
        HttpURLConnection connection = (HttpURLConnection) link.openConnection();
        connection.setRequestMethod("GET");

        XMLParser.loadCookiesToConnection(connection);
        connection.connect();

        if(LCHApplication.DEBUG) {
            System.out.println("response code: " + connection.getResponseCode());
            Map<String, List<String>> map = connection.getHeaderFields();
            System.out.println("Printing Response Header...\n");
            for (Map.Entry<String, List<String>> entry : map.entrySet()) {
                System.out.println("Key : " + entry.getKey()
                        + " ,Value : " + entry.getValue());
            }
        }

        XMLParser.storeCookiesFromConnection(connection);

        InputStream is = connection.getInputStream();
        InputStreamReader ir = new InputStreamReader(is);
        reader = new BufferedReader(ir);
        stringBuilder = new StringBuilder();

        String line = null;
        while ((line = reader.readLine()) != null)
        {
            stringBuilder.append(line + "\r");
        }
    } catch (Exception e) {
        e.printStackTrace();
        Crashlytics.logException(e);
    } finally {
        if (reader != null)
        {
            try
            {
                reader.close();
            }
            catch (IOException ioe)
            {
                ioe.printStackTrace();
                Crashlytics.logException(ioe);
            }
        }
    }

    try {
        xml = stringBuilder.toString();
    } catch (Exception e) {
        e.printStackTrace();
        Crashlytics.logException(e);

        try {
            LCHApplication.instance.dialogServerError(MainContainer.instance.getContext());
        } catch(Exception e1) {}
    }
    return xml;

}
4

1 回答 1

0

HttpUrlConnection是什么使连接。我注意到443正在使用该端口。这是一个问题,因为我指定了一个http://地址。

对于 6.0 Android 更新,我们有一个覆盖将所有http请求更改为https. 我应该从故障线上知道有什么事情发生了。

希望有人能从我的疏忽中受益。

于 2016-04-07T13:54:30.357 回答