此Oauth请求中的JSON有什么问题?

时间:2018-08-14 18:59:19

标签: javascript json node.js rest

我正在努力将2条腿的OAuth发布请求实现到我的NodeJS应用程序中。我正在尝试将信息发布到Schoology API(https://developers.schoology.com/),但似乎无法成功完成。我现在的代码:

function postCourse(){
    r.post("https://api.schoology.com/v1/courses", null, null,"{'title': 'English Writing', 'course_code': 'E101', 'department': 'English','description': 'Essay Writing'}","application/json", function (err, data, res) {
    console.log(res);   
    });
}

我不断收到400响应...错误的请求。我究竟做错了什么?我正在使用同一行代码来通过API GET进行操作,并且可以正常工作。

如下所示,由于使用单引号而不是双引号引发了错误的请求。这是JSON问题,而不是OAuth问题。正确的JSON应该如下所示: {\"title\": \"English Writing\", \"course_code\": \"E101\", \"department\": \"English\",\"description\": \"Essay Writing\"},使用反斜杠作为双引号的转义字符。

1 个答案:

答案 0 :(得分:1)

HTTP状态码400表示“错误请求”-您的请求某种程度上是服务器格式错误或无法解析的。

我注意到您正在像这样传递JSON:

{'title': 'English Writing', 'course_code': 'E101', 'department': 'English', 'description': 'Essay Writing'}

但是,您不能在JSON中使用单引号。您必须使用双引号,例如:

{"title": "English Writing", "course_code": "E101", "department": "English", "description": "Essay Writing"}

如果您解决了该错误,并确保您的API请求遵循其API准则,则400错误请求错误将消失。