Eu estou com um problema no consumo de um webservice onde o método quando chamado pela primeira vez funciona ok, quando é chamado uma segunda vez os dados do xml retornado são os mesmos da primeira chamada. Saindo da aplicação e retornando a chamada do webservice funciona. A impressão que dá é que mesmo atribuindo nil a variável oWebService ela não está finanlizando o objeto.
Fiz um for..next para testar de 1 a 2 no primeiro o send demora, o que é esperado, na segunda vez passa batido e o retorno do xml é o mesmo do primeiro.
►Harbour 3.x | Minigui xx-x | HwGui◄ Pense nas possibilidades abstraia as dificuldades. Não corrigir nossas falhas é o mesmo que cometer novos erros. A imaginação é mais importante que o conhecimento. (Albert Einstein)
Aqui uso normalmente isso, sem problemas.
Por acaso conferiu o conteúdo de cUrl ou das variáveis envolvidas?
Só comentário:
No Harbour não precisa do NIL, isso era coisa do Visual Basic.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2) "The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell" https://github.com/JoseQuintas/
Não teria que ter algo como: oXMLDoc:Close() ou oXMLDoc:Quit()?
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7 (Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Quintas a Url está correta, porque traz o xml com o conteúdo esperado, esse xml é um resultado de uma atualização em um banco oracle onde linhas de um campo de uma tabela são marcados com X e neste xml a rotina conta quantos X foram gravados neste campo. Acontece que na pirmeira vez por exemplo o campo com X totaliza 5, sem sair da aplicação e atualizando a tabela no oracle para trazer 3 linhas com X, a aplicação continua trazendo os 5 da primeira vez. Saindo da aplicação e executando novamente traz os 3 esperados.
Jairo os métodos Close() e Quit() não existem XMLDOM
►Harbour 3.x | Minigui xx-x | HwGui◄ Pense nas possibilidades abstraia as dificuldades. Não corrigir nossas falhas é o mesmo que cometer novos erros. A imaginação é mais importante que o conhecimento. (Albert Einstein)
aCep:={"20735050","22280001"}
For j:=1 to 2
oWebService:=Win_OleCreateObject("Microsoft.XMLHTTP")
oXMLDoc :=Win_OleCreateObject("Microsoft.XMLDOM")
oXMLDoc:async := .f.
cCep:=aCep[j]
oWebService:Open("GET", "http://cep.republicavirtual.com.br/web_cep.php?cep='" + cCep + "'&formato=xml", .f.)
oWebService:Send()
cBuffer := oWebService:responseXml
lSuccess:=oXMLDoc:load( cBuffer )
If lSuccess
// Cria objeto principal
oRetorno:=oXMLDoc:getElementsByTagName( "webservicecep" )
// Leitura do nó
For I:=1 TO oRetorno:length
? oXMLDoc:getElementsByTagName( "resultado" ):item(i-1):Text
? oXMLDoc:getElementsByTagName( "resultado_txt" ):item(i-1):Text
? oXMLDoc:getElementsByTagName( "uf" ):item(i-1):Text
? oXMLDoc:getElementsByTagName( "cidade" ):item(i-1):Text
? oXMLDoc:getElementsByTagName( "bairro" ):item(i-1):Text
? oXMLDoc:getElementsByTagName( "tipo_logradouro" ):item(i-1):Text
? oXMLDoc:getElementsByTagName( "logradouro" ):item(i-1):Text
InkeyGui(0)
Next i
Endif
oWebService:=Nil
oXMLDoc:=Nil
Next j
►Harbour 3.x | Minigui xx-x | HwGui◄ Pense nas possibilidades abstraia as dificuldades. Não corrigir nossas falhas é o mesmo que cometer novos erros. A imaginação é mais importante que o conhecimento. (Albert Einstein)
Alexandre, aqui eu compilei este seu exemplo, mudando apenas os CEPs (o seu segundo CEP não encontrava) e tirei a função InkeyGui(0), ai ficou sem parada, consultando o outro CEP logo em seguida, e funcionou sem problemas.
Alexandre, também tive o mesmo resultado que o Toledo, porém, alterando o 2o. CEP. Em seu exemplo, o CEP 22280001 não retorna dados nem mesmo na consulta dos correios. Tem certeza que é um CEP válido?
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7 (Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Neste caso do cep 22280001 tudo bem, pelo menos não retornou o 1º
►Harbour 3.x | Minigui xx-x | HwGui◄ Pense nas possibilidades abstraia as dificuldades. Não corrigir nossas falhas é o mesmo que cometer novos erros. A imaginação é mais importante que o conhecimento. (Albert Einstein)
►Harbour 3.x | Minigui xx-x | HwGui◄ Pense nas possibilidades abstraia as dificuldades. Não corrigir nossas falhas é o mesmo que cometer novos erros. A imaginação é mais importante que o conhecimento. (Albert Einstein)