Ir para conteúdo

POWERED BY:

Arquivado

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

mrkalvin

Soap e Wsdl

Recommended Posts

Estou tentando acessar o webservice do correio, para isso estou usando a classe nusoap.php:

http://www.phpclasses.org/browse/download/...03-01-12.tar.gz

 

Arquivo teste.php:

<?include('nusoap.php');$cep = "21331-500";// +----------------------------------------------------------------------------------------------------+// | Envia uma requisição pelo método Registration para o WebService e pega a resposta   |// +----------------------------------------------------------------------------------------------------+$cliente = new soapclient("http://consultacep.correios.com.br/office2003/Registration.asmx?wsdl","wsdl");$resposta = $cliente->call("Registration", $cep);$decodificada = rawurldecode($resposta);//salva a resposta em um arquivo xml$arq = fopen("_registration.xml", "w");fwrite($arq, $decodificada);fclose($arq);// +---------------------------------------------------------------------------------------------------+// | Envia uma requisição pelo método Query para o WebService e pega a resposta		  |// +---------------------------------------------------------------------------------------------------+$cliente = new soapclient("http://consultacep.correios.com.br/office2003/Query.asmx?wsdl","wsdl");$resposta = $cliente->call("Query", $cep);$decodificada = rawurldecode($resposta);//salva a resposta em um arquivo xml$arq = fopen("_query.xml", "w");fwrite($arq, $decodificada);fclose($arq);?>
Veja o modelo de requisição e resposta dos correios para o método Registration.

 

Para a requisição uso o método "Registration" com o parâmetro "sRegistrationXml"

e obtenho a resposta com o método "RegistrationResponse" que tem como retorno "RegistrationResult"

e então salvo o conteúdo do RegistrationResult em um arquivo xml

Até aí beleza.

 

Veja o modelo de requisição e resposta dos correios para o método Query.

 

Quando faço a requisição com o método "Query" com o parâmetro "queryXml"

obteho a resposta com o método "QueryResponse" que tem como retorno "QueryResult"

e então salvo o conteúdo do QueryResult em um arquivo xml

Porém o arquivo está vazio.

 

O que estou fazendo de errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei usar o soap do PHP (ao invés do nusoap) e também só pego o resultado vazio. Mesmo em outras linguagens, dá o mesmo. Tentei exemplos de outros sites e nada. Pra mim esse web-service do correio já virou lenda... só funciona no Word mesmo. Se alguém fazer essa ***** funcionar, me avisem.

 

Testei com esse código:

 

$options = array(	 	 // Não sei se é UTF-8 ou ISO-8859-1, pois nunca consegui resposta...	 	 'encoding'		=> "UTF-8");$wsdl = "http://consultacep.correios.com.br/office2003/Query.asmx?WSDL";$client = new SoapClient($wsdl, $options);$cep = "13561-250";$query = '<QueryPacket xmlns="urn:Microsoft.Search.Query"><Query><Context><QueryText type="STRING">'.$cep.'</QueryText></Context><OfficeContext xmlns="urn:Microsoft.Search.Query.Office.Context"><ApplicationContext><Name>Microsoft Office Word</Name></ApplicationContext></OfficeContext></Query></QueryPacket>';$result = $client->__soapCall("Query", array("queryXml" =>$query));var_dump($result);

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.