无法通过解析云代码访问Dropbox API,尽管它可以与CURL一起使用

无法通过解析云代码访问Dropbox API,尽管它可以与CURL一起使用,curl,parse-platform,dropbox-api,parse-cloud-code,Curl,Parse Platform,Dropbox Api,Parse Cloud Code,我正在尝试从解析云代码访问以下端点: https://api.dropboxapi.com/2/users/get_current_account return Parse.Cloud.httpRequest({ method: 'POST', url: 'https://api.dropboxapi.com/2/users/get_current_account', headers: { 'Content-Type': 'application/json', 'A

我正在尝试从解析云代码访问以下端点:

https://api.dropboxapi.com/2/users/get_current_account
return Parse.Cloud.httpRequest({
  method: 'POST',
  url: 'https://api.dropboxapi.com/2/users/get_current_account',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer ' + newAccessToken
  }
});
终点的详细信息:

我的云在提出请求时起作用

return Parse.Cloud.httpRequest({
  method: 'POST',
  url: 'https://api.dropboxapi.com/2/users/get_current_account',
  headers: {
    'Authorization': 'Bearer ' + accessToken
  }
});
从Dropbox接收到错误:

Error in call to API function "users/get_current_account": Bad HTTP "Content-Type" header: "application/x-www-form-urlencoded".  Expecting one of "application/json", "application/json; charset=utf-8", "text/plain; charset=dropbox-cors-hack"
然后我尝试使用CURL:

curl -X POST https://api.dropboxapi.com/2/users/get_current_account --header "Authorization: Bearer **access_token"
这起作用了,我得到了用户的数据

根据错误,我修改了云代码:

https://api.dropboxapi.com/2/users/get_current_account
return Parse.Cloud.httpRequest({
  method: 'POST',
  url: 'https://api.dropboxapi.com/2/users/get_current_account',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer ' + newAccessToken
  }
});
现在我得到了以下错误:

Error in call to API function \"users/get_current_account\": request body: could not decode input as JSON
httpRequest中没有请求主体。然后我尝试将主体设置为null和“”。两人都犯了同样的错误

首先,我不明白为什么dropbox API需要一个没有参数的
POST
请求

第二,我如何解决错误

非常感谢

-----更新-----

已尝试错误中的其他两种内容类型,即

'Content-Type': 'application/json;charset=utf-8'
'Content-Type': 'text/plain; charset=dropbox-cors-hack'
但仍然会得到相同的错误:

Error in call to API function \"users/get_current_account\": request body: could not decode input as JSON

我没有使用
Parse.Cloud.httpRequest
,但它可能会发送带有请求正文的默认内容类型参数。然而,
curl
不会发送任何内容类型的默认值,这就是为什么它可能与您一起工作的原因

从错误消息中,我可以看到它也将接受
文本/普通
,因此您可以尝试使用它

'Content-Type': text/plain; charset=dropbox-cors-hack',

我不知道他们为什么在没有输入数据的情况下使用
POST

最后!这对我很有用:

return Parse.Cloud.httpRequest({
  method: 'POST',
  url: 'https://api.dropboxapi.com/2/users/get_current_account',
  headers: {
    'Content-Type': 'application/json; charset=utf-8',
    'Authorization': 'Bearer ' + newAccessToken
  },
  body: JSON.stringify(null)
});
我必须在正文中使用
JSON.stringify(null)

下面的链接帮助我确定了解决方案:


谢谢。我现在已经尝试了所有三种内容类型,但仍然得到相同的错误。参考上面的更新。这很奇怪。可能您可以尝试使用
-XGET