2014-09-24 73 views
0

我已經看過關於此主題的其他帖子,但似乎沒有解決此問題。將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> 

任何人都可以提供任何見解嗎?

謝謝

回答

0

我會強烈建議使用代理的工具,像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