我正在使用一些请求参数向Sphere Engine API发出简单的http请求。但是,我无法解释错误。 API规范:http://sphere-engine.com/services/docs/compilers#status
代码:
http = require('http') ;
var info = {
sourceCode: 'print 3+4',
language: 4,
input: ''
} ;
var infoString = JSON.stringify(info);
var options = {
host: 'api.compilers.sphere-engine.com',
port: 80,
path: '/api/v3/submissions?access_token=b11bf50b8a391d4e8560e97fd9d63460',
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Content-Length': infoString.length
}
} ;
var req = http.request(options,function(res) {
res.setEncoding('utf-8');
var responseString = '' ;
res.on('data', function(data) {
responseString += data ;
});
res.on('end', function() {
var resultObject = JSON.parse(responseString);
});
} );
req.write(infoString);
req.end();
错误:
undefined:0
^
SyntaxError: Unexpected end of input
at Object.parse (native)
at IncomingMessage.<anonymous> (/Users/sarthakmunshi/nodetry.js:29:27)
at IncomingMessage.emit (events.js:117:20)
at _stream_readable.js:943:16
at process._tickCallback (node.js:419:13)
答案 0 :(得分:2)
由JSON.parse(responseString);
引起的此错误。你得到的回答是非-json字符串(XML,HTML?),但是尝试将其解析为json。
您可以使用xml-stream库来解析XML。