0

我正在检索袖珍 api 的访问令牌。我能够使用内容类型为 的 Http POST 请求成功地做到这一点application/x-www-form-urlencoded

{ 
  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 错误请求'

我在nodejs上这样做。我是否必须传递任何额外的细节,比如“X-Accept”(不知道怎么做)。

4

1 回答 1

1

我认为 Pocket 报告了一个错误请求,因为您在发送表单编码数据时将其声明为 Header.json 中的 JSON Content-Type

如果要以JSON 格式向 Pocket发送Content-Type: application/json; charset=UTF8数据,请设置.

如果要接收JSON 格式的数据集X-Accept: application/json

req.headers要在 HTTP 请求中包含自定义标头,只需在发送之前添加名称值对即可。例如:

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

于 2015-05-26T09:48:54.343 回答