将curl请求转换为coldfusion的问题http
问题描述:
我已经看过关于此主题的其他帖子,但似乎没有解决此问题。将curl请求转换为coldfusion的问题http
下卷曲请求工作对我们的测试数据库:
curl -XGET 'http://larry:[email protected]/service.php/find/ca_objects?q=*' -d '{"bundles" : { "ca_objects.access" : { "convertCodesToDisplayText" : true }, "ca_objects.status" : { "convertCodesToDisplayText" : true }, "ca_entities.entity_id" : {"returnAsArray" : true }}}'
然而,我试图使CF这项工作不返回卷曲请求的-d部分指定的字段。
<cfoutput>
<cfset strFields = {"bundles" : { "ca_objects.access" : { "convertCodesToDisplayText" : true }, "ca_objects.status" : { "convertCodesToDisplayText" : true }, "ca_entities.entity_id" : {"returnAsArray" : true }}}>
<cfhttp url="http://larry:[email protected]/service.php/find/ca_objects?q=*"
method="get"
result="httpResp"
timeout="60"
useragent="#cgi.http_user_agent#">
<cfhttpparam type="body" value="#serializeJSON(strFields)#" >
</cfhttp>
<cfdump var="#httpResp#" >
</cfoutput>
任何人都可以提供任何见解吗?
谢谢
答
我会强烈建议使用代理的工具,像fiddler。安装并运行它,它会被作为本地主机端口上的代理8888
重新运行curl命令通过小提琴手进行代理它:
curl -x localhost:8888 -XGET 'http://larry:[email protected]/service.php/find/ca_objects?q=*' -d '{"bundles" : { "ca_objects.access" : { "convertCodesToDisplayText" : true }, "ca_objects.status" : { "convertCodesToDisplayText" : true }, "ca_entities.entity_id" : {"returnAsArray" : true }}}'
现在修改您的通话CFHTTP:
<cfhttp url="http://larry:[email protected]/service.php/find/ca_objects?q=*"
method="get"
result="httpResp"
timeout="60"
proxyServer="localhost"
proxyPort:"8888"
useragent="#cgi.http_user_agent#">
您现在可以在一个地方看到CFHTTP和cURL的请求/响应。使用检查员标签查看差异,我怀疑会告诉你问题在哪里。如果您使用差异化工具,Fiddler可以设置为使用它来比较两个会话,这使得该过程更加直接。
此外,我不确定您是否正在构建您正在与之通话的API,但似乎需要GET中的请求主体,其中isn't normally used