首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >错误情况下的端口更改: HttpURLConnection

错误情况下的端口更改: HttpURLConnection
EN

Stack Overflow用户
提问于 2018-06-06 15:28:08
回答 1查看 30关注 0票数 0

我在我的安卓应用程序中使用HttpURLConnection使用API,它运行得很好,但是如果我得到的响应码不是200ok(比如404,500),当我在错误响应码之后点击下一个请求时,我的端口就会改变:我的安卓请求的代码如下所示,还有wireshark的日志:

代码语言:javascript
复制
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

那么如何避免在出错的情况下更改端口,就像在成功200的情况下一样,这样我们就可以继续在相同的端口上运行。

EN

回答 1

Stack Overflow用户

发布于 2018-06-07 08:40:35

阅读HttpURLConnection源代码中关于sun.net.http.errorstream.enableBuffering的内容。

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

与其设置模糊的系统属性来处理这个问题,不如转移到合适的http客户端,比如apache。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50714587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档