SurveyMonkey api Coldfusion 问题

SurveyMonkey api Coldfusion issue

我无法使用 cfhttp 和 cfhttpparam 使 header 参数 "Authorization" 正常工作。

连接工作正常...我正在通过我们的代理退出,所以这不是问题。

api 文档指出 header 中的 "Authorization" 应格式化为 "Authorization:bearer XXXYYYZZ".

当我尝试在 "bearer" 后面添加 space 时,出现以下错误:{"status":3,"errmsg":"Expected object or value"}

当我根本不添加前缀 "bearer" 时,我收到以下错误: {"status":1,"errmsg":"Invalid \"授权\"请求中的数据header"}

我已经尝试了 "bearer XXXYYYZZ" 和 "bearer%20XXXYYYZZ" 以及 "bearer XXXYYYZZ" 以及相同的结果。

有什么想法吗? 谢谢!

代码:

<cfhttp 
    timeout="2000" 
    url="https://api.surveymonkey.net/v2/surveys/get_survey_list/?api_key=xxxx"
    proxyserver="proxy.xxxx.com" 
    proxyport="8080" 
    method="post" 
    result="httpResponse" 
    charset="utf-8"
    throwonerror="Yes">
    <cfhttpparam type="header" name="Authorization" value="bearer XXXYYYZZ">
</cfhttp>
<cfdump var="#httpResponse#">

响应:

字符集 UTF-8
ErrorDetail [空字符串]
文件内容 {"status":1,"errmsg":"Invalid \"Authorization\" data in request header"}
Header HTTP/1.1 200 OK Access-Control-Expose-Headers: Cache-Control,Content-Language,Content-Type,Expires,Last-Modified,Pragma,Date, Content-Length Content-Type: application/json; charset=UTF-8 日期:2016 年 1 月 28 日星期四 13:16:11 GMT 服务器:nginx/1.4.6 (Ubuntu) SM-Request-ID:251952a7-9d21-470e-807d-9b48adf0892b X-Mashery-Message-ID: 9ebad058-e4e5-4cc9-b9cf-bf33dee9fbc6 X-Mashery-Responder: prod-j-worker-us-west-1b-58.mashery.com X-Plan-QPS-Allotted: 6 X-Plan-QPS-Current: 1 X-Plan-Quota-Allotted:7000 X-Plan-Quota-Current:5 X-Plan-Quota-Reset:2016 年 1 月 29 日,星期五 12:00:00 格林威治标准时间上午 Content-Length:72 连接:关闭
模仿类型 application/json
回应header

结构

Access-Control-Expose-Headers Cache-Control,Content-Language,Content-Type,Expires,Last-Modified,Pragma,Date,Content-Length
连接关闭
Content-Length72
Content-Type application/json;字符集=UTF-8
日期 2016 年 1 月 28 日星期四 13:16:11 GMT
说明好
Http_Version HTTP/1.1
SM-Request-ID251952a7-9d21-470e-807d-9b48adf0892b
服务器 nginx/1.4.6 (Ubuntu)
Status_Code200
X-Mashery-Message-ID9ebad058-e4e5-4cc9-b9cf-bf33dee9fbc6
X-Mashery-Responderprod-j-worker-us-west-1b-58.mashery.com
X-Plan-QPS-Allotted6
X-Plan-QPS-Current 1
X-Plan-Quota-Allotted7000
X-Plan-Quota-Current5
X-Plan-Quota-Reset 2016 年 1 月 29 日星期五 12:00:00 格林威治标准时间上午

状态码 200 正常
文本是

看起来您需要在正文中发送一个空的 JSON 结构。 API 需要一个 JSON 输入,即使没有要发送的参数。只需添加另一个 body 类型的 cfhttpparam,值为 {}

<cfhttp 
    timeout="2000" 
    url="https://api.surveymonkey.net/v2/surveys/get_survey_list/?api_key=xxxx"
    proxyserver="proxy.xxxx.com" 
    proxyport="8080" 
    method="post" 
    result="httpResponse" 
    charset="utf-8"
    throwonerror="Yes">
    <cfhttpparam type="header" name="Authorization" value="bearer XXXYYYZZ">
    <cfhttpparam name="body" type="body" value="{}">
</cfhttp>
<cfdump var="#httpResponse#">
<cfhttp 
    timeout="2000" 
    url="https://api.surveymonkey.net/v2/surveys/get_survey_list/?api_key=xxxx"
    proxyserver="proxy.xxxx.com" 
    proxyport="8080" 
    method="post" 
    result="httpResponse" 
    charset="utf-8"
    throwonerror="Yes">
    <cfhttpparam type="header" name="Authorization" value="bearer XXXYYYZZ">
    <cfhttpparam type="header" name="Content-Type" value="application/json" />
    <cfhttpparam name="body" type="body" value="{}">
</cfhttp>
<cfdump var="#httpResponse#">