我正在检索口袋api的访问令牌。我能够成功使用内容类型为application/x-www-form-urlencoded
的Http POST请求。
{
host: 'getpocket.com',
path: '/v3/oauth/authorize',
port: 443,
method: 'POST',
headers:
{ 'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': 79 }
}
但pocket也支持内容类型为application/json
。
{
host: 'getpocket.com',
path: '/v3/oauth/authorize',
port: 443,
method: 'POST',
headers: { 'Content-Type': 'application/json', 'Content-Length': 79 }
}
但是使用这种类型的请求会让我回复
'400 Bad Request'
我在nodejs上这样做。我是否必须传递任何额外的细节,比如'X-Accept'(不知道怎么做)。
答案 0 :(得分:1)
我认为Pocket报告了一个错误的请求,因为您发送表单编码数据,同时在Content-Type
标题中将其声明为JSON。
如果您想以JSON格式发送数据到Pocket,请设置Content-Type: application/json; charset=UTF8
。
如果您想以JSON格式设置X-Accept: application/json
接收数据。
要在HTTP请求中包含自定义标头,只需在发送之前将名称值对添加到req.headers
即可。例如:
headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'X-Accept' : 'application/json'}
或:
req.headers['X-Accept'] = 'application/json'
查看https://nodejs.org/api/http.html#http_http_request_options_callback。