¿Cómo se vería este código en ColdFusion?Traducir PHP PUT Solicitud de 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;
}
Tengo algo como lo siguiente, pero parece que no funciona.
<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>
No sé lo suficiente sobre PHP para entender cómo la variable $ de datos (que es sólo una cadena de datos XML) se está puesto en la petición HTTP y la forma de duplicados que en ColdFusion.
no soy gurú php tampoco. Pero mi suposición sería que está enviando el XML en el "cuerpo" de la solicitud. Intente usar cfhttpparam type = "body" y use # requestXML # como valor. – Leigh
En la instalación de Coldfusion ya hay una biblioteca http de Apache, compruebe cómo se podría hacer en Java, probablemente la solución más rápida y personalizable que podría pensar en este momento. –
@Leigh - Acabo de intentarlo y sigo recibiendo un error. Si ayuda alguno, el error que obtengo es: Tipo de medio no compatible 'application/octet-stream' – Jason