相同查询的不同答案 cUrl (Steam Market)

Different answers to the same queries cUrl (Steam Market)

当您在浏览器中关注 link:

http://steamcommunity.com/market/priceoverview/?country=US%C2%A4cy=5&appid=570&market_hash_name=Gem%20of%20Taegeuk

给出 { "success": false },在标题 500 中出错。但是当我通过 cUrl

进行同样的查询时
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://steamcommunity.com/market/priceoverview/?country=US&currency=5&appid=570&market_hash_name=Gem%20of%20Taegeuk");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);   
$curl = curl_exec($ch);

作为回应,我得到的不是 json:

‹ЄV*.MNN-.VІJKМ)N­яятКC4

告诉我如何解决这个问题以及错误 (500) 的可能原因是什么?

两个问题:

1) 在示例 link 中的 country=US 之后有一个额外的 %C2%A4cy% 和缺少的 curren。 CURL 中的 URL 看起来没问题。

2) 您的 CURL 命令不遵循重定向,URL 应该与 https:// 一起(浏览器会自动执行)。您可以使用 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

进行重定向

服务器 return 压缩响应 (header Content-Encoding: gzip)。所以,你需要自动编码:

curl_setopt($ch,CURLOPT_ENCODING, '');

P.S。与 curl 不同的浏览器会自动解压响应。