此代碼在ColdFusion中的外觀如何?將PHP PUT HTTP請求翻譯爲ColdFusion
protected function httpPut($url, $params = null, $data = null)
{
$fh = fopen('php://memory', 'rw');
fwrite($fh, $data);
rewind($fh);
$ch = curl_init($url);
$this->addOAuthHeaders($ch, $url, $params['oauth']);
curl_setopt($ch, CURLOPT_PUT, 1);
curl_setopt($ch, CURLOPT_INFILE, $fh);
curl_setopt($ch, CURLOPT_INFILESIZE, strlen($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$resp = $this->curl->addCurl($ch);
fclose($fh);
return $resp;
}
我有類似於下面的東西,但它似乎並不奏效。
<cffile action="write" file="d:\my\directory\path\test.xml" output="#arguments.requestXML#">
<cfhttp url="#oaAccessTokenURL#" method="#arguments.requestType#" charset="UTF-8">
<cfheader name="Authorization" value="#oauthheader#">
<cfhttpparam type="file" name="Course" file="d:\my\directory\path\test.xml">
</cfhttp>
我不知道有足夠的瞭解PHP,瞭解如何$ data變量(這僅僅是一個XML數據的字符串)是越來越放入HTTP請求和如何複製,在ColdFusion的。
我不是PHP的大師無論是。但我的猜測是它會在請求的「主體」中發送XML。嘗試使用cfhttpparam type =「body」並使用#requestXML#作爲值。 – Leigh 2010-08-09 20:05:18
在Coldfusion安裝中,已經存在Apache http庫,請檢查它是如何在Java中完成的,這可能是我現在可以想到的最快和最可定製的解決方案。 – 2010-08-09 20:08:27
@Leigh - 我剛剛嘗試過,仍然出現錯誤。如果它有幫助,我得到的錯誤是:不支持的媒體類型'application/octet-stream' – Jason 2010-08-09 20:10:11