Ir para conteúdo

POWERED BY:

Arquivado

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

Michael_c

WebService Correios via post ASP

Recommended Posts

Boa tarde,

 

 

Vocês já tentaram consumir o Webservice dos correios via ASP Classico?

 

Estou com o seguinte problema (utilizo o componente MSXML2.XMLHTTP) se consumo via GET funciona, se consumo via POST não funciona, olhem o código (gostaria de consumir via POST):

 

Dim url     : url     = "http://ws.correios.com.br/calculador/CalcPrecoPrazo.asmx"
Dim method  : method  = "CalcPrecoPrazo"
Dim retorno : retorno = ""

Dim getXML
Set getXML = Server.CreateObject("MSXML2.XMLHTTP")
    getXML.open "POST", url & "/" & method, false
    getXML.setRequestHeader "Content-Type", "text/XML"
    getXML.Send "nCdEmpresa=&sDsSenha=&nCdServico=40010&sCepOrigem=03113070&sCepDestino=03142001&nVlPeso=1&nCdFormato=1&nVlComprimento=30&nVlAltura=10&nVlLargura=20&nVlDiametro=0&sCdMaoPropria=N&nVlValorDeclarado=100&sCdAvisoRecebimento=S"
	
    retorno = getXML.responseText

Set getXML = Nothing

 

Com o código acima obtenho o erro:

 

 

Server Error in '/calculador' Application.

 

 

Request format is unrecognized.

 

 

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidOperationException: Request format is unrecognized.

Source Error:

 

 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.


Stack Trace:

 

 

[InvalidOperationException: Request format is unrecognized.] System.Web.Services.Protocols.WebServiceHandlerFactory.CoreGetHandler(Type type, HttpContext context, HttpRequest request, HttpResponse response) +388 System.Web.Services.Protocols.WebServiceHandlerFactory.GetHandler(HttpContext context, String verb, String url, String filePath) +94 System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, String path, String pathTranslated, Boolean useAppConfig) +698 System.Web.MapHandlerExecutionStep.System.Web.HttpApplication+IExecutionStep.Execute() +95 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +173 

 

 

 

Version Information: Microsoft .NET Framework Version:1.1.4322.2502; ASP.NET Version:1.1.4322.2470

 

 

 

 

 

Se eu utilizar via GET, como abaixo, funciona:

Dim url     : url     = "http://ws.correios.com.br/calculador/CalcPrecoPrazo.asmx/CalcPrecoPrazo?nCdEmpresa=&sDsSenha=&nCdServico=40010&sCepOrigem=03113070&sCepDestino=03142001&nVlPeso=0.3&nCdFormato=1&nVlComprimento=30&nVlAltura=10&nVlLargura=20&nVlDiametro=0&sCdMaoPropria=N&nVlValorDeclarado=100,2&sCdAvisoRecebimento=S"

Dim getXML
Set getXML = Server.CreateObject("MSXML2.XMLHTTP")
    getXML.open "GET", url, false
    getXML.setRequestHeader "Content-Type", "text/XML"
    getXML.Send 
	
    retorno = getXML.responseText

Set getXML = Nothing

 

 

 

Se alguém tiver uma sugestão.

 

 

Obrigado,

 

Michael C.

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá uma olhada 9procurada) no fórum que postei um exemplo de como fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Xanburzum,

 

Antes de postar eu procurei no iMasters e encontrei apenas exemplos com GET, você chegou a postar algum exemplo consumindo via POST?

 

Obs.: Via GET eu estou conseguindo sem problemas...

 

Obrigado,

 

Michael C.

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que tenho também, vou ver nos meus code , mas dá uma olhada aqui http://www.correios.com.br/webServices/PDF/SCPP_manual_implementacao_calculo_remoto_de_precos_e_prazos.pdf

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Xanburzum,

 

Já tinha olhado o manual dos correios, meu problema é realmente com o POST...

 

Seguindo o manual, via GET funciona tranquilo, só achei estranho não funcionar com o POST e tenho o retorno de um erro de "Request format is unrecognized", pesquisei bastante antes de postar no fórum, mas não encontrei nada parecido com o meu problema.

 

O mais estranho é que realizei testes de consumo do WS via .NET é funciona tranquilo via POST, o problema está no consumo via ASP Classico com o ditucujo do POST...

Enfim, sigo buscando.

Obrigado,

Michael C.

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso pode ser o HTTP POST que esttá desabilitado por padrão tente adicionar o seguinte ao seu arquivo de configuração:


<configuration>
    <system.web>
    <webServices>
        <protocols>
            <add name="HttpGet"/>
            <add name="HttpPost"/>
        </protocols>
    </webServices>
    </system.web>
</configuration>

esse é para a parte de ASP.Net do webservice

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.