HTTPs POST Response com cURL

avantix

Power Member
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:

PHP:
<?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 ?
 
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 ;)
 
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

PHP:
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 ....
 
Back
Topo