PHP PUTのHTTPリクエストは、ColdFusionに翻訳します
-
27-09-2019 - |
質問
は何でしょう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が(XMLデータの単なる文字列である)$データ変数は、httpリクエストに入れを取得し、どのようにColdFusionでこれを複製する方法を理解することについて十分知らない。
解決
ここでの(Javaのドキュメントから)は、Javaスパーク、あなたはそれをうまくする必要があります:
PutMethod put = new PutMethod("http://jakarta.apache.org");
put.setRequestBody(new FileInputStream("UploadMe.gif"));
このようにCFに変換されます:
<cfset myPut = createObject("java", "org.apache.commons.httpclient.methods.PutMethod") />
<cfset myPut.init("http://example.com") />
<cfset myInputStream = createObject("java", "java.io.FileInputStream") />
<cfset myInputStream.init("myxml.xml") />
<cfset myPut.setRequestBody(myInputStream) />
そしてそう...
の私はこのようなsomehting見ることができます上に貼り付けられたリンクでます:
URL url = new URL("http://www.example.com/resource");
HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();
httpCon.setDoOutput(true);
httpCon.setRequestMethod("PUT");
OutputStreamWriter out = new OutputStreamWriter(
httpCon.getOutputStream());
out.write("Resource content");
out.close();
作業のJava soutionを見つけて、CFでそれを翻訳します。
EDITます:
解決のために以下のコメントを参照してください。
他のヒント
私はあなたのcfhttpの呼び出しにメソッド=「PUT」を追加しようとするだろう。それはCFHTTPが正しいHTTP動詞(この場合はPUT)を送るようになります。
あなたはPUTメソッドをやっていると仮定すると、あなたはXHRデータを取得するには、ColdFusionのGetHttpRequestData()関数を使用することができます。
あなたは、このような何かを行うことによってそれを保存することができます:
<cfset xhr_data = GetHttpRequestData() />
<cffile action="write" file="PATH/FILENAME" output="#xhr_data.content#">
所属していません StackOverflow