android - 排球响应标题

时间:2017-06-30 13:48:13

标签: android http android-volley android-networking

我尝试使用volley来获取http请求。我在postman上尝试了一个请求,响应标题如下:

  1. 内容编码→gzip
  2. 内容长度→153
  3. Content-Type→application / json; charset = utf-8
  4. 日期→星期五,2017年6月30日13:36:10 GMT
  5. ETag→W /“23-E742p6pP4kakmVh3lok1ww”
  6. 服务器→Microsoft-IIS / 8.0
  7. Vary→X-HTTP-Method-Override,Accept-Encoding,Accept-Encoding
  8. X-Powered-By→Express,ASP.NET
  9. Volley添加了一些额外的密钥并删除了Content-LengthContent-Encoding密钥。我在parseNetworkResponse函数上写了键和值。响应标题如下:

      

    Content-Type:application / json;字符集= utf-8的   日期:2017年6月30日星期五09:05:23 GMT   ETag:W /“23-E742p6pP4kakmVh3lok1ww”   服务器:Microsoft-IIS / 8.0   Set-Cookie:ARRAffinity = 16d81073e15abb17d2faba962adb6504734210ff2b9ff1ddfa770750ac7752e2; Path = /; xxx.net   变化:X-HTTP-Method-Override,Accept-Encoding,Accept-Encoding   X-Android-Received-Millis:1498813523832   X-Android-Response-Source:NETWORK 200   X-Android-Selected-Protocol:http / 1.1   X-Android-Sent-Millis:1498813523632   X-Powered-By:Express

    为什么会改变内容?如何获得Content-LengthContent-Encoding

1 个答案:

答案 0 :(得分:0)

如果您使用的是java.net.HttpURLConnection和getHeaderFieldKey方法,那么请不要忘记根据API reference检查标题中的第0个元素:

  

某些实现可能会将第0个头字段视为特殊字段,即作为HTTP服务器返回的状态行。在这种情况下, getHeaderField(0)返回状态行,但getHeaderFieldKey(0)返回null。