PORT更改错误情况:HttpURLConnection

时间:2018-06-06 07:28:08

标签: java android http

我在我的Android应用程序中使用HttpURLConnection消耗API并且运行正常但是如果我得到响应代码,那么200 ok(如404,500)我的端口正在改变,当我在错误响应代码后点击下一个请求时: 我的android请求代码如下:wireshark日志:

try {
            url = new URL(path_url + apiMsg); //in the real code, there is an ip and a port

            conn = (HttpURLConnection) url.openConnection();

            conn.setDoInput(true);
            conn.setDoOutput(true);
            conn.setConnectTimeout(5000);
            conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8");

            conn.setRequestMethod("POST");
            conn.setRequestProperty("Accept","*/*");

}

请参阅wireshark日志:

https://files.fm/u/w7umrwwk

那么如何在错误场景中避免PORT更改以及成功200例,以便我们继续在同一个PORT上运行。

1 个答案:

答案 0 :(得分:0)

在HttpURLConnection源代码中阅读sun.net.http.errorstream.enableBuffering。

默认情况下,当响应代码为> = 400时,连接将关闭。 处理错误流是一种干净但不那么有效的方法。

不要设置模糊的系统属性来处理这个问题,最好转移到像apache这样的适当的http客户端。