Ir para conteúdo

POWERED BY:

Arquivado

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

Weverton N

Recuperar dados de um xml que está sendo exibido por uma página ASP.

Recommended Posts

Galera, estou implantando um sistema de débito online em um site.

 

Neste site, eu envio alguns dados necessários via POST para uma página ASP nos servidor do banco.

Esta página ASP gera um xml que é exibido nela msm.

 

Como faço para recuperar esse xml novamente para utilizá-lo no meu site?

 

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Será que os componentes FSO ou o MSXML tem uma propriedade para me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

É galera, valeu pela ajuda.. mas no meu caso não é um leitor de RSS, já que eu vou enviar parâmetros para a página ASP, e ela vai exibir Xml.

Será que esses exemplos de vocês também permitem isso?

 

Vlw!!

Compartilhar este post


Link para o post
Compartilhar em outros sites
É galera, valeu pela ajuda.. mas no meu caso não é um leitor de RSS, já que eu vou enviar parâmetros para a página ASP, e ela vai exibir Xml.

Será que esses exemplos de vocês também permitem isso?

 

Vlw!!

Tecnicamente sim, pois um RSS nada mais é que um XML, dê uma olhada aqui no laboratório de scripts que tem um exemplo de leitor de feeds "genérico".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera.. estudando alguns códigos ae.. eu consegui isso daqui:

 

ASP
<%

'on error resume next

'--- carga do xml utilizando o padrao de tags dafinidas abaixo.

param = "CODPARCEIRO="&request.form("CODPARCEIRO")&"&NUMPEDIDO="&request.form("NUMPEDIDO")&"&VLCOMPRA="&request.form("VLCOMPRA")

 

'---instancia objeto p/ envio do XML gerado

Set oXMLHTTP = Server.CreateObject("MSXML2.XMLHTTP")

oXMLHTTP.open "POST", "https://www.sub.site.com.br/validaparceiro.asp", false

oXMLHTTP.setRequestHeader "Content-Type", "text/xml"

'oXMLHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"

oXMLHTTP.send(param) 'Aqui o XML é enviado p/ PROCERGS

 

'Retorno do servidor da SEFA.

'Retorno = oXMLHTTP.responseXML.xml  'Aqui é carregado o retorno da PROCERGS. Formato XML.

Retorno = oXMLHTTP.responseText  'Aqui é carregado o retorno da PROCERGS. Formato XML.

'Retorno="<xml>  <codRetorno>3</codRetorno>   <Mensagem>Problemas com o Parceiro.</Mensagem>   <CodigoParceiro />   <NumeroPedido />   <ValorCompra />   <SessaoParceiro />   </xml>"

'Retorno=Server.MapPath(".")&"retorno.xml"

 

'response.write Retorno

 

'on error resume next

set xmlretorno = server.CreateObject("Microsoft.XMLDOM" )

xmlretorno.async = false

xmlretorno.loadXML(Retorno)

 

 

 

xPath = "//xml"

set codRetorno = xmlretorno.selectNodes(xPath)

 

for each Campos in codRetorno

    codRetorno = Campos.selectSingleNode("codRetorno").text

    Mensagem = Campos.selectSingleNode("Mensagem").text

    CodigoParceiro =  Campos.selectSingleNode("CodigoParceiro").text

    NumeroPedido = Campos.selectSingleNode("NumeroPedido").text

    ValorCompra = Campos.selectSingleNode("ValorCompra").text

    SessaoParceiro = Campos.selectSingleNode("SessaoParceiro").text

    xhtml =  codRetorno & "<br />" & Mensagem & "<br />" & CodigoParceiro & "<br />" & NumeroPedido & "<br />" & ValorCompra & "<br />" & SessaoParceiro

next

 

'response.write param&"<br>"

response.write xhtml

 

%>

 

Aparentemente está ok, mas parece que não está enviando os dados POST para o servidor, pois ele retorna o xml ok, mas com os valores típicos de dados incorretos.

 

Alguém sabe o que está errado? Pode ser algo como requestHeader ou como o responseText... vlw!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom gente.

Eu fiz mais uns testes.

E descobri o seguinte:

 

Quando eu envio os dados utilizando o requestHeader assim:

ASP
setRequestHeader "Content-Type", "application/x-www-form-urlencoded"

 

Ele envia os dados normalmente (pois estou enviando dados POST), e recebe o resultado numa boa.

Só que quando eu puxo esse resultado com o XMLDOM, ele não consegue interpretar o xml, pois o requestheader está como um tipo html.

 

Agora quando eu coloco o requestHeader assim:

ASP
setRequestHeader "Content-Type", "text/xml"

 

Ele não consegue enviar os dados (pq eu não esto uenviando um xml), mas o retorno em xml vem normalmente, e com o XMLDom, eu consigo dar um load numa boa.. pq eu setei o requestheader como tipo xml.

 

A pergunta é:

EU CONSIGO ENVIAR DADOS EM FORMATO POST VIA XMLHTTP, E RECEBER UM XML DE RETORNO, E NA MESMA PÁGINA, CONSEGUIR CARREGAR ESSE RETORNO COMO XMLDOM? OU TENHO QUE FAZER O TRATAMENTO DO RETORNO EM OUTRA PÁGINA, PQ NÃO SE PODE TRABALHAR COM DOIS CONTENT-TYPE NA MESMA PÁGINA?

 

PS. Eu so posso enviar os dados em post.

Compartilhar este post


Link para o post
Compartilhar em outros sites

veja se esse codigo te dá alguma luz

ASP
strXmlPost =  ""&_                                                      

                                                                                "<?xml version=""1.0""?>"&vbNewLine&_

                                                                                "       <AccessRequest xml:lang=""en-US"">"&vbNewLine&_

                                                                                "               <AccessLicenseNumber>2C16CB22512DA2301</AccessLicenseNumber>"&vbNewLine&_

                                                                                "                <UserId>jonathandj</UserId>"&vbNewLine&_

                                                                                "                <Password>123456</Password>"&vbNewLine&_

                                                                                "       </AccessRequest>"&vbNewLine&_

                                                                                "<?xml version=""1.0""?>"&vbNewLine&_

                                                                                "       <RatingServiceSelectionRequest xml:lang=""en-US"">"&vbNewLine&_

                                                                                "       <Request>"&vbNewLine&_

                                                                                "               <TransactionReference>"&vbNewLine&_

                                                                                "                       <CustomerContext>Rating and Service</CustomerContext>"&vbNewLine&_

                                                                                "                       <XpciVersion>1.0001</XpciVersion>"&vbNewLine&_

                                                                                "               </TransactionReference>"&vbNewLine&_

                                                                                "               <RequestAction>Rate</RequestAction>"&vbNewLine&_

                                                                                "               <RequestOption>shop</RequestOption>"&vbNewLine&_

                                                                                "       </Request>"&vbNewLine&_

                                                                                "       <PickupType>"&vbNewLine&_

                                                                                "               <Code>01</Code>"&vbNewLine&_

                                                                                "       </PickupType>"&vbNewLine&_

                                                                                "       <Shipment>"&vbNewLine&_

                                                                                "               <Shipper>"&vbNewLine&_

                                                                                "                       <Address>"&vbNewLine&_

                                                                                "                               <PostalCode>"&cepOrigem&"</PostalCode>"&vbNewLine&_

                                                                                "                               <CountryCode>BR</CountryCode>"&vbNewLine&_

                                                                                "                       </Address>"&vbNewLine&_

                                                                                "               </Shipper>"&vbNewLine&_

                                                                                "               <ShipTo>"&vbNewLine&_

                                                                                "                       <Address>"&vbNewLine&_

                                                                                "                               <PostalCode>"&postalCodeShipTo&"</PostalCode>"&vbNewLine&_

                                                                                "                               <Countrycode>"&postalCountryShipTo&"</Countrycode>"&vbNewLine&_

                                                                                "                       </Address>"&vbNewLine&_

                                                                                "               </ShipTo>"&vbNewLine&_

                                                                                "               <Service>"&vbNewLine&_

                                                                                "                       <Code>65</Code>"&vbNewLine&_

                                                                                "               </Service>"&vbNewLine&_

                                                                                "               <Package>"&vbNewLine&_

                                                                                "                       <PackagingType>"&vbNewLine&_

                                                                                "                               <Code>02</Code>"&vbNewLine&_

                                                                                "                       </PackagingType>"&vbNewLine&_

                                                                                "                       <PackageWeight>"&vbNewLine&_

                                                                                "                               <UnitOfMeasurement>"&vbNewLine&_

                                                                                "                               <Code>"&UnitOfMeasurement&"</Code>"&vbNewLine&_

                                                                                "                               </UnitOfMeasurement>"&vbNewLine&_

                                                                                "                               <Weight>"&weight&"</Weight>"&vbNewLine&_

                                                                                "                       </PackageWeight>"&vbNewLine&_

                                                                                "               </Package>"&vbNewLine&_

                                                                                "       </Shipment>"&vbNewLine&_

                                                                                "       </RatingServiceSelectionRequest>"

                        Set objXmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP")

                        objXmlHttp.Open "POST","https://www.ups.com/ups.app/xml/Rate?",false

                        objXmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"

                        objXmlHttp.send strXmlPost

                        responsexml = objXmlHttp.responseText

                        set objXmlHttp = nothing

                        Set objXml=Server.CreateObject("Microsoft.xmlDOM")

                        objXml.loadxml(responsexml)

                        Set objXmlRetorno = objXml.documentElement.selectNodes("RatedShipment")

'continua o código

Claro que isso que postei não vai funcionar se colocar a rodar, troquei os dadois de acesso pois é um codigo que fiz para calculo de frete internacional para um cliente. Mas consigo enviar os dados e recebe-los perfeitamente com essa logica

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.