Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

trcsproject

Como passar XML usando HTTPRequest and HTTPResponse - PHP

Recommended Posts

Tem um WebService foi desenvolvido para trabalhar com requisição/resposta puro XML (HTTPRequest e HTTPResponse). Sendo assim, não existe o WSDL.

 

Alguém sabe como enviar o xml para esse webservice ?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como string no corpo da requisição ou como file, depende de como o ws aceita.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguem poderia postar exemplo?

Estou fazendo dessa forma, é forma correta ?

$xmlcontent = ' <RequestAcessorio>
<login>LOGIN</login>
<senha>SENHA</senha>
</RequestAcessorio>';
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_URL, "http://LINK.COM.BR/");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlcontent);
$content=curl_exec($ch);
echo $content;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui...

 

<?php
// Acesso ao webservice via CURL
define('XML_PAYLOAD', ' CODIGO EM XML ');
define('XML_POST_URL', 'http://DOMINIO.COM.BR');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, XML_POST_URL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_POST, True);
curl_setopt($ch, CURLOPT_POSTFIELDS, XML_PAYLOAD);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml','Connection: close'));
$result = curl_exec($ch);
if ( curl_errno($ch) ) {
$result = 'cURL ERROR -> ' . curl_errno($ch) . ': ' . curl_error($ch);
log_cron('ERRO', $result, $mid, 'MENSAGEM');
} else {
$returnCode = (int)curl_getinfo($ch, CURLINFO_HTTP_CODE);
switch($returnCode) {
case 200:
break;
default:
$result = 'HTTP ERROR -> ' . $returnCode;
log_cron('ERRO', $result, $mid, 'MENSAGEM');
break;
}
}
curl_close($ch);
$arquivo = getZip($result);
// Recebe o o xml após descompactado
try {
$xml = new SimpleXMLElement($arquivo);
} catch (Exception $e) {
echo "Bad xml: ".$e->getMessage();
}
##############################################################
/**
* function getZip
* que pega a arquivo gzip e descompacta
*/
function getZip($stream) {
// Diretorio onde esta o arquivo compactado
$DIR = "DIRETORIO";
$fp = fopen($DIR."arquivo.gz", "wrb");
fwrite($fp, $stream, 2048);
fclose($fp);
sleep(2);
$zp = gzopen($DIR."arquivo.gz", "r");
$contents = gzread($zp, 10000);
gzclose($zp);
// retorna o xml já descompactado em forma de texto
return $contents;
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.