问题描述
我使用下面的代码从 HttpsURLConnection 请求正文中读取。我遇到的问题是下面代码中的 sResponseString 变量仅限于 1000 个字符。有没有办法增加或绕过这个限制?
```
BufferedReader in = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));
String sInputLine = "";
while ((sInputLine = in.readLine()) != null){
sResponseString += sInputLine;
}
```
解决方法
您的客户端代码(如图所示)、HTTP/HTTPS 协议或底层 TCP/IP 传输都没有对响应的大小施加约 1000 个字符的限制。
(HTTP 和 TCP/IP 没有技术限制。由于您将结果组装为堆中的字符串,因此存在技术/实际限制。例如,Java String
最多可以是 2^31 - 1 个字符。但这与您的问题无关...)
因此,如果某些内容限制了响应大小,则将是您的代码正在与之通信的远程服务器或代理。因此,没有通用的解决方案。您的方法应该是:
-
检查您正在讨论的 Web API 的文档,看看它是否提供了问题的原因并提供了解决方案。
-
如果没有,请联系提供 API 的人员并寻求他们的帮助。
有没有办法增加或绕过这个限制?
除非你知道是什么原因造成的;看上面。也可能根本没有。
检查您当前获得的约 1000 个字符中的内容也是值得的。这可能是某种“错误”响应,而不是您期望的内容,那可以解释为什么它比您期望的要小。