我正在使用Volley进行服务器调用,在某些情况下可以返回一个大的响应 - 几兆字节的JSON。
当服务器响应更“正常”时,一切正常,但是如果有大的负载,Volley会抛出NetworkError
而不附加任何详细信息并记录一条奇怪的消息 - BasicNetwork.performRequest: Unexpected response code 200
。
我很确定问题在于响应大小,所以我的问题是Android / Volley中的HTTP请求/响应大小是否存在已知限制,或者是否存在更改它的设置。我知道有些HTTP库有它。
我知道服务器很好,因为有其他客户端以相同的方式使用相同的服务器端点。
我开始在库代码中调试,发现响应代码确实是200
,并且正在接收正确的数据。正在以块的形式从响应流中复制请求内容,但在某些时候复制中出现了问题。
这是我能接近原始异常的最接近的。显然,在图片上显示的第一个断点处的while循环期间,某个java.net.ProtocolException
会被抛出。您还可以看到实际的JSON内容。
然后处理并重新抛出此异常几次: