我正在使用delphi XE3将一些图像上传到服务器,我用chrome拦截了请求,我基本上用IDhttp发送完全相同的请求,服务器响应200 OK,所以我想一切都很顺利。 问题是,我需要获取响应内容以获取上传图像的链接,但我得到的只是:
‹ •ÒK
à лÌ:Ôù¨Õ\¥)P‚‹¤…,Cî^K–ÅÂlddà1¿ê:/e‡ñq@®kÙöúÚRÍ0Wº}&³–\çÉ×^ 6 ä“‹ÄŽ's÷!²½½·Îᇣ¨â„1Ù€=I¥±Å$®¯±®¶ˆ‰±¯©íW¦Ûà?ËêFÖbñ=Ë©,j·Á¡gyÅßá_Öóü gÊr Á
这是什么?我怎样才能获得Json响应?
Chrome上拦截的响应标头是:
Cache-Control:no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection:Keep-Alive
Content-Encoding:gzip
Content-Length:169
Content-Type:application/json
Date:Thu, 21 Nov 2013 12:29:40 GMT
Expires:Thu, 19 Nov 1981 08:52:00 GMT
Keep-Alive:timeout=5, max=100
p3p:CP="CAO PSA OUR"
Pragma:no-cache
Server:Apache/2.2.22 (Debian)
Vary:User-Agent,Accept-Encoding
X-Powered-By:PHP/5.4.4-14+deb7u3t-Type:application/json
答案 0 :(得分:5)
来自回复标题:
Content-Encoding:gzip
所以它是压缩数据。不允许在HTTP请求中进行压缩或使用gzip解压缩数据。
答案 1 :(得分:3)
响应标头表示内容已压缩:
Content-Encoding:gzip
要小心你所要求的。如果你告诉服务器你可以接受gzip,服务器实际上可能会发送给你gzip。您可能是手动设置Accept-Encoding
标题。
而不是发送如下所示的请求标头:
Accept-Encoding: gzip
您可以发送一个表示您不想要任何编码的请求标头:
Accept-Encoding: identity
请参阅以下问题,以便为gzip正确配置TIdHTTP
: