我收到了JSON电话的响应!这是我的回复输出: Console Output
那是我的JSON请求:
Mixer.Info microphone = null;
for (Mixer.Info info : AudioSystem.getMixerInfo()) {
System.out.println(info);
if (info.getName().equals("Port Built-in Microphone")) {
System.out.println("found " + info);
microphone = info;
}
}
final Mixer mixer = AudioSystem.getMixer(microphone);
我认为这是关于字符集的错误,但我不知道如何改变它。
解决方案:
request({
url: url,
json: true
}, function (error, response, body) {
if (!error && response.statusCode === 200) {
console.log(body)
}
})
答案 0 :(得分:1)
我已经从你的代码中清除了很多误导性的垃圾,以解决问题的核心。
现在重现原始问题:
var request = require('request');
getItemPrice("StatTrak™ UMP-45 | Delusion (Minimal Wear)")
function getItemPrice(market_hash_name, callback) {
var url = "http://steamcommunity.com/market/priceoverview/?currency=3&appid=730&market_hash_name=" + market_hash_name;
request({
url: url,
json: true
}, function(error, response, body) {
console.log(body);
if (!error && response.statusCode === 200) {
console.log(parseFloat(((body.lowest_price).replace(/\,/g, '.')).split('&')[0]));
}
})
}
您的问题是您所呼叫的内容不是有效的网址,而服务器对此做出的反应非常糟糕。
您必须将特殊字符编码为URL格式:
var url = "http://steamcommunity.com/market/priceoverview/?currency=3&appid=730&market_hash_name=" +
encodeURIComponent(market_hash_name);
答案 1 :(得分:-1)
您称之为什么样的REST API?如果是节点js API,则可以在那里设置字符集
var req = http.request(options, function(res) {
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers));
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log('BODY: ' + chunk);
});
});
如果不是这种情况,请像这样设置请求字符集
request.setHeader('Accept-Charset', 'UTF-8)