Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala pessoal, beleza?
Existe uma página aqui na intranet que gero um documento xml usando ASP e passando uma querystring, para ele pegar membros de um grupo especifico, ex.: http://localhost/xxx.asp?chave=VALOR
Veja um exemplo do XML retornado:
<?xml version="1.0" encoding="ISO-8859-1"?><grupo chave="VALOR"> <membro id="membro-1"> <dominio>aaa</dominio> <conta>0123456</conta> <nome>nome</nome> </membro> <membro id="membro-2"> <dominio>aaaa</dominio> <conta>0123489</conta> <nome>nome 2</nome> </membro> <membro id="membro-3"> <dominio>bbbbb</dominio> <conta>0123487</conta> <nome>nome 3</nome> </membro></grupo>Agora em uma nova página preciso pegar os dados gerados desse documento e exibi-los, ex.: [http://localhost/xxx.asp?chave=VALOR](http://localhost/xxx.asp?chave=VALOR)
Estava tentando algo como:
<table> <thead> <tr> <th>Dominio</th> <th>Conta</th> <th>Nome</th> </tr> </thead> <tbody><%dim objXML, membrosset objXML = Server.CreateObject("Microsoft.XMLDOM")''''''objXML.setProperty "ServerHTTPRequest",false'--------------------- MÉTODO LOAD, MINHA DUVIDA - INICIOobjXML.load("xxx.asp?chave="& Request.QueryString("chave") )'--------------------- MÉTODO LOAD, MINHA DUVIDA - FIMobjXML.async = falseIf objXML.parseError.errorCode <> 0 Then Response.write "handle the error: "& objXML.parseError.reason Response.endEnd If Set membros = objXML.getElementsByTagName("membro")'if isArray(membros) then for each item in membros%> <tr> <td><%=item.childNodes(0)%></td> <td><%=item.childNodes(1)%></td> <td><%=item.childNodes(2)%></td> </tr><% next'else Response.Write "nao eh array"'end ifset membros = nothingset objXML = nothing%> </tbody></table>Então, percebam que no método load eu chamo uma página .asp que GERA aquele documento xml na hora. Não sei se é esse o problema, pois os exemplos que vi na internet chamam um arquivo físico no servidor e que tenha a extensão .xml. Por isso, não sei se ele aceita esse load dinâmico, mesmo sendo rodado localmente.
O erro retornado:
The system cannot locate the resource specified.
Se alguém puder ajudar, agradeço.
Valeu.
Já tentou passar o caminho completo ali?
Guto.Faça o "Download" do arquivo com XMLHTTP, e coloque todo o XML dentro de uma StringDepois, utilize o método LoadXML do objeto XMLDOmDocument
Cuma?Por favor, exemplifique.Eu antes de chamar o método load ali, tentei usar o XMLHTTP para retornar o xml (texto) retornado, mas nem isso rolou.Não sei se poderia ser o servidor aqui da empresa...
Guto..
Vamos lá !!!
'Obtendo o XML do servidorSet objXMLHttp = Server.CreateObject("MSXML2.XMLHTTP")Set objDOm = Server.CreateObject("MSXML2.DomDocument")objXmlHttp.open "GET","http://www.url.com.br"objXMLHttp.send
1º Tente assim
Set objDom = objXmlHttp.responseXML Set membros = ObjDom.getElementsByTagName("membro") For i = 0 To membros.length -1 membros.item(i).choldNodes(0) & "<br>" membros.item(i).choldNodes(1) & "<br>" membros.item(i).choldNodes(2) & "<br>" Next Set membros = nothingSet objDom = nothingSet objXMLHttp = NothingSe não der certo..Tente assim
strXML = objXmlHttp.responseXMLSet objDom.loadXML(strXML) Set membros = ObjDom.getElementsByTagName("membro") For i = 0 To membros.length -1 membros.item(i).choldNodes(0) & "<br>" membros.item(i).choldNodes(1) & "<br>" membros.item(i).choldNodes(2) & "<br>" Next Set membros = nothingSet objDom = nothingSet objXMLHttp = NothingResponse object error 'ASP 0185 : 80020003' Missing Default Property /piloto/ret-teste.asp, line 0 A default property was not found for the object.
<%'Option Explicit'Response.expires = 0Response.Buffer = true'Response.ContentType = "text/xml"'Obtendo o XML do servidordim objXMLHttp'set objXMLHttp = Server.CreateObject("MSXML2.ServerXMLHTTP")' ##### 1set objXMLHttp = Server.CreateObject("MSXML2.XMLHTTP") ' ##### 2'Set objXMLHttp = Server.CreateObject("Microsoft.XMLHTTP") ' ##### 3 - OLD VERESIONdim cURLcURL = "http://localhost/xxx.asp?chave=VALOR2"'cURL = "http://www.jsfromhell.com/atom.xml"objXmlHttp.open "GET",cURL,falseobjXMLHttp.sendif objXMLHttp.readyState = 4 then if objXMLHttp.status = 200 then Response.write objXMLHttp.responseXML else Response.Write objXMLHttp.status & ": " & objXMLHttp.statusText if err.number <> 0 then Response.Write err.Description end ifend ifset objXMLHttp = nothing%>Dependendo, dá o erro 401 (acesso negado) ou 500 (internal server error)
Colega,Problemas na sua intranet, você usa PROXY ?
É, aqui na empresa, como é intranet, é tudo da M$ e usamos o IE.Indo em: Ferramentas > Opções da internet > Conexões > Configuração da Lan... Tem lá:
[checkado] Usar servidor proxy para a rede local. bla bla blaEndereço: blablaPorta: 8080
Bem, como eu poderia contornar isto?
Colega.
Teremos que usar outro componente. O WinHttRequest
Esse componente é nativo do Win2000 e XP, não existe no Win98.
Em veradade, foi ele quem inspirou a criação do XMLHttp
Abaixo segue código para passar pelo Proxy com este componente.
Set objWin = Server.CreateObject("WinHttp.WinHttpRequest.5.1") Set objXML = Server.CreateObject("MSXML2.DomDocument") objWin.Open "POST",dsURL,False objWin.SetProxy 2,"NomeServidorProxy:8080" objWin.SetCredentials "UsuarioRede","SenhaUsuarioRede",1 objWin.SetRequestHeader "Content-Type","text/xml" objWin.Send objParametro strXML = objWin.ResponseText Call objXMl.LoadXML(strXML)
Marcelo,Sempre que chego na empresa, preciso me logar no PC.Coloquei meu usuário e senha ali e não rolou. É outro usuário e senha ali?Procurei documentação no MSDN, mas só achei relacionados a ASP.NET.E dei uma googleada e achei exemplos que nem o seu, nada a mais.Valeu.
WinHttp.WinHttpRequest error '80072eef' The login request was denied
O erro dá na linha do objWin.Send' objParametro '-- comentei pq nao pelo q vi nada é necessário aqui.
Guto.Você se loga em um servidor local (na sua máquina) ou em um domínio?Na minha empresa eu me logo em em domínio.Assim utilizo o usuário indicando o domínio, por exemploLogin = "AGFBRasil\mebkopcznski"Senha = "senha"Tenta assim !
Por favor,Se alguém souber uma referência/link para a documentação de algum destes componentes abaixo, agradeço.- Microsoft.XMLHTTP- Microsoft.XMLDOMProcurei bastante, mas não achei. :/