Página 1 de 1
Encerrar objeto com componente "Microsoft.XmlHttp"
Enviado: 29 Out 2019 11:37
por cMach
Bom dia pessoal,
Alguém sabe informar qual função encerra um objeto criado com componente "Microsoft.XmlHttp" no xHarbour ? Estou tentando o close() mas dá erro ...
local obj
local hhash := hash()
...
obj:CreateObject( "Microsoft.XmlHttp")
obj:open("GET", url,.f.)
obj:send()
hb_jsonDecode(obj:ResponseBody, @hhash)
....
obj:close()
ERRO:
-------------------- Internal Error Handling Information ---------------------
Subsystem Call ....: Microsoft.XmlHttp
System Code .......: 3
Default Status ....: .F.
Description .......: DISP_E_MEMBERNOTFOUND
Operation .........: CLOSE
Encerrar objeto com componente "Microsoft.XmlHttp"
Enviado: 29 Out 2019 11:45
por sygecom
Tenho usado assim:
obj:=nil
Encerrar objeto com componente "Microsoft.XmlHttp"
Enviado: 29 Out 2019 13:59
por cMach
O que ocorre é que se a requisição "GET" não for atendida na primeira tentativa, da segunda em diante no loop ela não obtém o retorno, mas se fechar a aplicação e entrar novamente ai vai. Estive pensando se o problema não seria por eu não estar encerrando o objeto criado.
ST = .f.
do while ST <> .t.
obj:=CreateObject("Microsoft.XmlHttp")
obj:Open( "POST", url, .f. )
obj:Send(file.txt)
hb_jsonDecode(obj:ResponseBody, @hhash)
if hhash["message"] == "ok"
url2 = "hhash["url"]
TRY
obj:=CreateObject( "Microsoft.XmlHttp")
obj:Open( "GET", url2, .f. )
obj:Send()
hb_jsonDecode(obj:ResponseBody, @hhash2)
ST = .t.
CATCH oError
loop
END
else
exit
endif
enddo
Encerrar objeto com componente "Microsoft.XmlHttp"
Enviado: 29 Out 2019 14:09
por alxsts
Olá!
O método close não existe. Tente usar o método abort para interromper uma requisição, antes de tentar novamente.
Encerrar objeto com componente "Microsoft.XmlHttp"
Enviado: 29 Out 2019 14:45
por cMach
alxsts,
Acho que acertou em cheio!
Vou fazer mais uns testes..
Valeu meu camarada!
Encerrar objeto com componente "Microsoft.XmlHttp"
Enviado: 29 Out 2019 15:14
por cMach
Testei novamente. Na verdade o problema persiste.
Encerrar objeto com componente "Microsoft.XmlHttp"
Enviado: 29 Out 2019 16:10
por JoséQuintas
Já tentou confirmar se não está usando errado?
Encerrar objeto com componente "Microsoft.XmlHttp"
Enviado: 29 Out 2019 21:00
por asimoes
Olá
Um exemplo obtido da página do Macoratti
Observe a última linha: Set oHttpRequest = Nothing em harbour seria oHttpRequest := Nil
http://www.macoratti.net/xml_vb3.htm
Código: Selecionar todos
resolveTimeout = 300
conectaTimeout = 300
sendTimeout = 300
receiveTimeout = 300
verificaURL = "http://www.macoratti.net/macoratti.htm"
Set oHttpRequest = CreateObject("MSXML2.ServerXMLHTTP")
with oHttpRequest
.SetTimeouts resolveTimeout,conectaTimeout,sendTimeout,receiveTimeout
.Open "GET" , verificaURL
.Send
Select case .Status
case 200 'ok
Response.write verificaURL & " é uma URL válida."
case 404 'Pagina não localizada
Response.Write verificaURL & " não foi encontrado."
case Else
Response.Write " Ocorreu um erro não previsto de HTTP : " & .Status
End Select
End With
Set oHttpRequest = Nothing
Encerrar objeto com componente "Microsoft.XmlHttp"
Enviado: 30 Out 2019 13:27
por JoséQuintas
asimoes escreveu:Observe a última linha: Set oHttpRequest = Nothing em harbour seria oHttpRequest := Nil
Vb é interpretado.
Atribuição de objetos é com SET, e não com sinal de igual
Acaba exigindo a mesma coisa pra destruir variáveis que guardam objetos.
No Harbour não precisa nada, porque ele gerencia direito suas variáveis.
Se no XHarbour precisa, então é defeito no XHarbour com variáveis.
Variáveis PRIVATE, PUBLIC, não declaradas, e MINIGUI, acabam sendo vilões pra descontrole total sobre variáveis.
Encerrar objeto com componente "Microsoft.XmlHttp"
Enviado: 31 Out 2019 16:25
por cMach
Estou pensando em deixar o xHarbour e passar a utilizar o Harbour mesmo.
Tem alguma dica sobre a melhor versão e como instalar, compilar, etc..
obg
Encerrar objeto com componente "Microsoft.XmlHttp"
Enviado: 31 Out 2019 17:41
por JoséQuintas
cMach escreveu:Estou pensando em deixar o xHarbour e passar a utilizar o Harbour mesmo.
Tem alguma dica sobre a melhor versão e como instalar, compilar, etc..
Meu uso todos já conhecem:
Baixo o compilador C mingw x86_x64 (50MB), e os fontes do Harbour 3.4.
Com isso gero o que uso, podendo compilar em 32 ou 64 bits.
Se precisar SSL, email do tipo gmail, hbMysql, ou outro opcional, vai precisar baixar arquivos adicionais de outros lugares. Como não uso essas coisas, só os dois downloads que mencionei me bastam.