Я загружаю цену товара Steam из официального API с помощью модуля запроса в node.js (http://steamcommunity.com/market/priceoverview/?currency=1&appid=730&market_hash_name=), и он работает очень хорошо, за исключением случая, когда элемент, имя которого начинается со звездочки (★), тогда URL-адрес выглядит обработанным узлом это http://steamcommunity.com/market/priceoverview/?currency=1&appid=730&market_hash_name=★%20M9%20Bayonet%20%7C%20Stained%20(Field-Tested)
. При вводе вручную в браузере он работает хорошо, но когда это делает мой бот Steam, Steam возвращает {"success":"false"}
. Я думаю, причина того, что он не проходит через звездочку (★), как мне это исправить?
Не удается обработать URL-адрес модулем запроса
comment
Поскольку URL-адрес из браузера работает, вы всегда можете просто открыть вкладку сети в отладчике и посмотреть, какой именно закодированный URL-адрес отправляется на сервер, чтобы увидеть, чем ваш URL-адрес отличается от этого.
- person jfriend00   schedule 19.01.2016
Ответы (1)
Полностью кодируйте URL-адрес market_hash_name
перед передачей его в request
библиотеку.
request = require("request")
request("http://steamcommunity.com/market/priceoverview/?currency=1&appid=730&market_hash_name=%e2%98%85+M9+Bayonet+%7c+Stained+(Field-Tested)", function(e, response, body) {
console.log(body)
});
person
Adam Lamers
schedule
19.01.2016
Теперь это работает! Я использовал функцию
encodeURIComponent()
для кодирования имени элемента.
- person irqize; 19.01.2016