Che aspetto avrebbe questo codice in ColdFusion?Traduci PHP PUT richiesta HTTP a 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;
}
Ho qualcosa come il seguente, ma non sembra funzionare.
<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>
Non so abbastanza di PHP per capire come la variabile $ data (che è solo una stringa di dati XML) è sempre messo nella richiesta HTTP e come duplicato che in ColdFusion.
io non sono il guru php sia. Ma suppongo che stia inviando l'XML nel "corpo" della richiesta. Prova a usare cfhttpparam type = "body" e usa # # requestXML come valore. – Leigh
Nell'installazione di Coldfusion c'è già la libreria HTTP di Apache, controlla come potrebbe essere fatto in Java, probabilmente la soluzione più veloce e più personalizzabile che potessi pensare in questo momento. –
@Leigh - Ho appena provato e sto ancora ricevendo un errore. Se è utile, l'errore che sto ottenendo è: Tipo di supporto non supportato 'application/octet-stream' – Jason