Http 使用CURL时,来自特定URL的响应不是有效文本(在浏览器中可以正常工作)

Http 使用CURL时,来自特定URL的响应不是有效文本(在浏览器中可以正常工作),http,curl,Http,Curl,如果我在浏览器中访问此url,它将以JSON文本响应,但是尝试使用CURL获取它时,我得到的似乎是二进制数据,它不构成有效字符串。我不知道发生了什么事。复制很简单,只需在浏览器中尝试此url,然后使用CURL: 在浏览器中,您将获得JSON文本,但在CURL中,您将获得 ? ?Vmo?H?+??z??1??P?tMҐ... etc 我一直在处理许多类似的网址,从来没有遇到过这种情况。非常感谢您的建议。我已经为您比较了浏览器请求服务器与压缩的差异,因此您可以尝试curl--compressed

如果我在浏览器中访问此url,它将以JSON文本响应,但是尝试使用CURL
获取它时,我得到的似乎是二进制数据,它不构成有效字符串。我不知道发生了什么事。复制很简单,只需在浏览器中尝试此url,然后使用CURL:

在浏览器中,您将获得JSON文本,但在CURL中,您将获得

?
?Vmo?H?+??z??1??P?tMҐ... etc

我一直在处理许多类似的网址,从来没有遇到过这种情况。非常感谢您的建议。

我已经为您比较了浏览器请求服务器与压缩的差异,因此您可以尝试
curl--compressed
我已经为您比较了浏览器请求服务器与压缩的差异,所以您可以尝试
curl--compressed

我刚刚检查了响应的标题。服务器正在GZIP压缩模式下发送响应。大多数现代浏览器可以自动反压缩,但不能卷曲。

我们必须解压缩响应以获取实际数据。您可以将cURL与gunzip一起使用

最后,您的curl命令如下所示:

$curl https://tiles.arcgis.com/tiles/z2tnIkrLQ2BRzr6P/arcgis/rest/services/SanFrancisco_Bldgs/SceneServer/layers/0?f=json  | gunzip -

我刚刚检查了回复的标题。服务器正在GZIP压缩模式下发送响应。大多数现代浏览器可以自动反压缩,但不能卷曲。

我们必须解压缩响应以获取实际数据。您可以将cURL与gunzip一起使用

最后,您的curl命令如下所示:

$curl https://tiles.arcgis.com/tiles/z2tnIkrLQ2BRzr6P/arcgis/rest/services/SanFrancisco_Bldgs/SceneServer/layers/0?f=json  | gunzip -

太棒了,谢谢你们。下面提出的两种解决方案都很有效。拯救了这一天!太棒了,谢谢你们。下面提出的两种解决方案都很有效。拯救了这一天!