Я пытаюсь получить историю цен из товаров в Steam Market, и я обнаружил, что это то, что мне нужно и что я буду использовать в качестве базы для получения истории цен:
В браузерах это работает отлично, в результате получается JSON с ценовой историей, но в PHP он возвращает это:
Warning: file_get_contents(http://steamcommunity.com/market/pricehistory/?country=PT¤cy=3&appid=730&market_hash_name=Falchion%20Case): failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request in E:\...\test.php on line 3
Уже пытался обойти с curls
но до сих пор, кажется, ничего не работает.
Код на данный момент:
<?php
echo file_get_contents("http://steamcommunity.com/market/pricehistory/?country=PT¤cy=3&appid=730&market_hash_name=Falchion%20Case");
?>
Как было упомянуто Вот, было бы лучше попробовать curl()
чтобы получить более точное сообщение об ошибке, поэтому лучше ответы.
На данный момент вы должны знать еще одну вещь: Steam, вероятно, предпринял некоторые действия против людей, использующих этот URL, чтобы получить цену товара. Ваш 400 Bad Request
может быть (и, скорее всего, так) вызвано не посылкой всей информации, необходимой странице.
Например — страница может не требовать какого-либо параметра POST / GET в тот момент, когда вы начали внедрять для себя, но поскольку знание ссылки становится слишком распространенным, Steam решил добавить еще один параметр, чтобы отфильтровать сторонние организации, которые генерируют высокую нагрузку ,
Возможным путем было бы углубиться в происхождение этого URL (например, кто и как его нашел), воспроизвести шаги, которые были предприняты в первый раз, и выяснить, что изменилось с тех пор.
Мое предположение состоит в том, что кто-то обнюхивал (Wireshark, Fiddler и т. Д.), Что отправляет приложение при извлечении истории цен на товары, и как оно нашло ссылку. Вы можете попробовать это тоже.
Других решений пока нет …