View Full Version : HTTPs POST Response com cURL


avantix
26-11-2004, 17:26
Boas a todos,

tenho isto em mãos neste momento e como nunca mexi nestas coisas, peço ajuda a quem já sabe :D

Situação:
Vou receber um HTTPs Post Request com alguns parametros que terei de analisar. verificar e depois enviar um HTTPs POst Response.

Ora bem , se na parte de receber ... não tenho muita coisa a fazer ... é simpelsmente analisar o POST e fazer o que tenho a fazer ... a parte de retorno é mais complexa ... pelo menos aparentemente.

Exemplo:
Recebo o seguinte por POST request:

Parametro: codigo
Parametro: data
Parametro: valor

Em PHP analiso todos os dados, e depois tenho de enviar por HTTPs POST Responde o seguinte XML:


<?xml version="1.0" encoding="UTF-8"?>
<codigo>
<parametros>
<nome>Avantix</nome>
<idade>27</idade>
</parametros>
</codigo>


Não consigo que isto apareça como deve ser .... selecionem o texto que tem lá tudo! Sorry

Penso que com cURL dá para o fazer ... eu já li algumas coisas ... mas ainda não apanhei o que preciso ...
alguem me consegue ajudar ?

fap
26-11-2004, 18:45
não sei se percebi bem...mas tens de ter cuidado ao respeitar a norma HTTP
tens de responder com:
status line CRLF
headers CRLF
CRLF
Dados
CRLF
CRLF

o que te pode estar a atrofiar são os CRLF...em unix é \n\r...em mac acho que é \n\n e em windows acho que é \r\n...posso também ter percebido mal... mas se foi isso explica aí melhor ;)

avantix
26-11-2004, 18:57
Boas,

Obrigado desde já pela resposta.

Não é bem esse o meu problema ... isso já entra no debug dos possiveis erros ...

O que eu ainda não sei é como fazer o processo de resposta, ou seja:

Algo deste género ... penso eu :D


function xml_post($command) {
global $_SESSION;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, EPP_SERVER_URL);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: text/xml; charset=UTF-8"));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); //Disable server authentication
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //This makes curl_exec() to return a string with the response
curl_setopt($ch, CURLOPT_POST, 1); //Default is GET, so we must set this.
curl_setopt($ch, CURLOPT_POSTFIELDS, $command); //POST parameters
curl_setopt($ch, CURLOPT_HEADER, 1); //Make sure the header is included in the response
curl_setopt($ch, CURLOPT_COOKIE, $_SESSION['EPPCOOKIE']); //Send the cookie
$res = curl_exec($ch);
curl_close($ch);
return $res;
}


Ou seja, construir o XML e enviá-lo por HTTPs Post Response usando o modulo cURL do PHP ...

Não sei se consigo explicar muito melhor ... este tipo de soluções são geralmente usadas para pagamentos electrónicos .. mas eu é mais outra coisa ....

fap
27-11-2004, 09:51
não sei puto de php...deixo isso para quem saiba :D

ptzs
01-12-2004, 01:13
Não conheço a fundo PHP, mas php.net tem lá um manual ultra-porreiro.