相同查询的不同答案 cUrl (Steam Market)
Different answers to the same queries cUrl (Steam Market)
当您在浏览器中关注 link:
给出 { "success": false },在标题 500 中出错。但是当我通过 cUrl
进行同样的查询时
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://steamcommunity.com/market/priceoverview/?country=US¤cy=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
不同的浏览器会自动解压响应。
当您在浏览器中关注 link:
给出 { "success": false },在标题 500 中出错。但是当我通过 cUrl
进行同样的查询时$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://steamcommunity.com/market/priceoverview/?country=US¤cy=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
不同的浏览器会自动解压响应。