Node返回错误中的API请求

时间:2015-06-03 08:26:12

标签: node.js rest http

我正在使用一些请求参数向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)

1 个答案:

答案 0 :(得分:2)

JSON.parse(responseString);引起的此错误。你得到的回答是非-json字符串(XML,HTML?),但是尝试将其解析为json。

您可以使用xml-stream库来解析XML。

相关问题