Delphi 应为JSON文本时的二进制HTTP响应内容

Delphi 应为JSON文本时的二进制HTTP响应内容,delphi,http,encoding,gzip,indy,Delphi,Http,Encoding,Gzip,Indy,我使用delphi XE3将一些图像上传到服务器,我用chrome截获了请求,我用IDhttp发送了完全相同的请求,服务器用200 OK响应,所以我想一切都很顺利。 问题是,我需要获得响应内容才能获得上传图像的链接,但我得到的只是: ‹ •ÒK à лÌ:Ôù¨Õ\¥)P‚‹¤…,Cî^K–ÅÂlddà1¿ê:/e‡ñq@®kÙöúÚRÍ0Wº}&³–\çÉ×^ 6 ä“‹ÄŽ's÷!²½½·Îᇣ¨â„1Ù€=I¥±Å$®¯±®¶ˆ‰±¯©íW¦Ûà?Ë

我使用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
从响应标题:

 Content-Encoding:gzip

所以是压缩数据。不允许在HTTP请求中压缩或使用gzip解压数据。

响应头指示内容已压缩:

Content-Encoding:gzip
小心你的要求。如果您告诉服务器您可以接受gzip,那么服务器实际上可能会通过gzipped将其发送给您。您可能正在手动设置接受编码头

而不是像下面这样发送请求头:

Accept-Encoding: gzip
您可以发送一个表示不需要任何编码的请求标头:

Accept-Encoding: identity
请参阅以下问题以正确配置用于gzip的TIDWTTP:


请记住开头的两个è和一个圆形字符-它们是GZip压缩的典型字符,因此它们提示您通过尝试压缩来证明这一点,可能是重复的,或者只是不禁用Indy组件来进行解压缩:谢谢,你们太棒了。