2013-01-18 64 views
2

我想在ColdFusion中重新创建一个PHP函数(因为我不知道PHP),并认为我的大部分函数并不是太糟糕,但在处理PHP中的cURL函数时遇到问题。ColdFusion替代cURL

的功能代码是

$cookie_string = $this->EASW_KEY."; ".$this->EASF_SESS ."; ".$this->PHISHKEY; 
$ch = curl_init($search); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_COOKIE, $cookie_string); 
curl_setopt($ch, CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json', 
    'x-http-method-override: GET', 
    $this->XSID) 
); 

//Contains the JSON file returned 
$EAPSEARCH = curl_exec($ch); 
curl_close($ch); 

unset (List of variables); 

我假设CFHTTP功能是我最好的盟友,但真的不知道如何处理的重码。任何人都可以指出我正确的方向吗?

回答

12

你说得对,CFHTTP是要走的路。这里是你的电话的一个版本以上翻译为CFHTTP电话:

<cfhttp url="http://some.server/path" method="POST" result="resultName> 
    <cfhttpparam type="cookie" name="EASW_KEY" value="#EASW_VALUE#" /> 
    <cfhttpparam type="cookie" name="EASF_SESS" value="#EASF_SESS_VALUE#" /> 

    <cfhttpparam type="header" name="Content-Type" value="application/json" /> 
    <cfhttpparam type="header" name="x-http-method-override" value="GET" /> 

    <cfhttpparam type="body" value="#myJSONStringVariable#" /> 
</cfhttp> 

<cfdump var="#resultName# /> 

的CFHTTP标签被记录在这里:http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=Tags_g-h_09.html

+3

小尖和珍闻,如果你是从你的CFHTTP呼叫接收JSON,你会想使用#resultName.fileContent.toString(“utf-8”)#。另外,如果您要提供返回到前端的JSON,则需要确保适当地设置内容 - 同时使用类型和字符集

+0

谢谢你的工作。只需要处理如何让身份验证通过并立即开始工作! – CPB07

+2

cfhttp支持http基本身份验证的用户名和密码属性,因此在这方面您可能会确定。如果你正在尝试使用其他方案,我相信会相当困难。 – barnyr