将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