我正在尝试向githubs graphql api(v4)发送http请求。我猜我的查询格式是错误的。下面的代码用于向api发送post请求。

app.get('/fetch-data', function(req, res, next) {
    const access_token = settings.dev.TOKEN;
    const query = {query: { viewer: { 'login': 'muckbuck' } }};

    const options = {
        uri: 'https://api.github.com/graphql',
        method: 'POST',
        headers: {
            'Accept': 'application/json',
            'Authorization': "Bearer " + access_token,
            'User-Agent': 'request',
            'contentType': "application/graphql",
        },
        data: query
    };

    function callback(error, response, body) {
        console.log(response.body)
        if (!error && response.statusCode == 200) {
            console.log(body);
            console.log('lol');
        }
    }
    request(options, callback);



});

我收到的错误消息:
{"message":"Problems parsing JSON","documentation_url":"https://developer.github.com/v3"}

最佳答案

我相信您的graphql格式不正确,因为query键应该包含一个字符串,而不是一个复杂的结构。另请参见github api文档中的this example
您也可以按照GraphQL introduction的建议将Content-Type设置为application/jsonapplication/graphql似乎不是graphql的aregistered media typealter the behaviour

关于json - 在将HTTP请求发送到graphql api时出现“问题解析JSON”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45566784/

10-12 00:30
查看更多