Enviar comando Http

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Samuk.exe
Usuário Nível 2
Usuário Nível 2
Mensagens: 65
Registrado em: 25 Mai 2010 15:58
Localização: anapolis

Enviar comando Http

Mensagem por Samuk.exe »

Boa Tarde... Preciso enviar um comando para um sistema PHP.
Tentei usar o Connect do tHttp, mas só me retorna False!

Se alguem puder me ajudar!

Cod abaixo.

Código: Selecionar todos

************
function vip
************
parameters nCupom , qLitros , vUnitario , dataCupom , horaCupom , cpfCliente

cUrl := "http://www.cmcsys.com.br/2013/integracao.php?modulo=cuponsFiscais&acao=adicionarCupomIntegracao&usuario=integracao&senha=1nt3gr4c4o&masterkey=autocom&codigoCliente=1020&parametro1="
cUrl := cUrl + alltrim(str(nCupom))      +";" 
cUrl := cUrl + alltrim(str(qLitros))     +";"             && Formato 10.00
cUrl := cUrl + alltrim(str(vUnitario))   +"&parametro2="  && Formato 1.79
cUrl := cUrl + dataCupom   +";"             && Formato 05/09/2013
cUrl := cUrl + horaCupom   +"&parametro3="  && Formato 11:00 
cUrl := cUrl + cpfCliente

oUrl := THttp():New()

     if oUrl:Connect( cUrl )
         msgInfo("Comando Enviado com Sucesso!")
     else
	msgInfo("Erro Ao Enviar Comando!")
     endif


return nil
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Enviar comando Http

Mensagem por Toledo »

Amigo, a utilização do THttp parece que está tudo certo, a única coisa que estranhei é o formato de alguns parâmetros que você está passando na URL, nas linhas 8 a 11 do seu código.

Tem certeza que pode passar . (ponto em qLitros e vUnitario), / (barra em dataCupom) e : (dois pontos em horaCupom)?

Faça um teste primeiro digitando a URL completa no seu navegador (Internet Explorer, FireFox, Opera, etc) e veja qual é o resultado.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Samuk.exe
Usuário Nível 2
Usuário Nível 2
Mensagens: 65
Registrado em: 25 Mai 2010 15:58
Localização: anapolis

Enviar comando Http

Mensagem por Samuk.exe »

Ola Toledo , tudo bom?

Obrigado pela resposta!
E sim, os parametros são esse padrão mesmo.
Faço o teste no navegador e funciona.

E quando coloco a Url do google, funciona mesmo.

Atualmente ultilizo um Bat, que manda esse Http pro navegador!
Mas tenho um incomodo abrir um navegador no cliente, que na maioria das vezes é bloquiado.

Estou fazendo teste com http:post(), mas tbm não estou conseguindo!

Só preciso enviar essa Url. Se houver alguma outra ideia de como fazer isso é só me falar tbm.

Abraços...
Samuk.exe
Usuário Nível 2
Usuário Nível 2
Mensagens: 65
Registrado em: 25 Mai 2010 15:58
Localização: anapolis

Enviar comando Http

Mensagem por Samuk.exe »

Ninguem Mais?
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Enviar comando Http

Mensagem por asimoes »

Tenta isso:

Código: Selecionar todos


oPg1 := Win_OleCreateObject("Microsoft.XMLHTTP")
TRY 
   oPg1:Open("GET", cURL, .F.)
   oPg1:Send()
   cBuf1:=oPg1:responseText
   oPg1:=Nil
CATCH
   MsgInfo("Erro na consulta.")
   QUIT
END
►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)
Samuk.exe
Usuário Nível 2
Usuário Nível 2
Mensagens: 65
Registrado em: 25 Mai 2010 15:58
Localização: anapolis

Enviar comando Http

Mensagem por Samuk.exe »

Beleza Asimoes?!

Obrigado pela resposta...

Fiz o sugerido e deu:

Código: Selecionar todos

Error WINOLE/1007 Argument error: OPEN (DOS Error 
Tentei até pelo site do google, e não deu!

Só um detalhe, pelo que andei estudando acho q o comando certo será com POST!

MAs tentei alguns exemplos mais sempre não dá!

:(
Samuk.exe
Usuário Nível 2
Usuário Nível 2
Mensagens: 65
Registrado em: 25 Mai 2010 15:58
Localização: anapolis

Enviar comando Http

Mensagem por Samuk.exe »

Tentando com a Lib Tip:

Código: Selecionar todos

oUrl := TURL():New( "www.cmcsys.com.br")
oUrl:cPath := "/2013"

oInternet:=TipClientHttp():new( oURL )

oUrl:cFile := "integracao.php"

IF oInternet:Open()
        msgInfo("Comando Enviado com Sucesso!")
else
	msgInfo("Erro Ao Enviar Comando!")
endif


return nil
Recebo o Erro :

Código: Selecionar todos

Error BASE/1081 Operação não suportada: TIPCLIENTHTTP:new()
MAs alguma Dica?
yugi386
Usuário Nível 2
Usuário Nível 2
Mensagens: 82
Registrado em: 24 Jul 2008 10:36
Localização: Minas Gerais

Enviar comando Http

Mensagem por yugi386 »

Prezado Samuk,

Tente isto:

Código: Selecionar todos

procedure Internet()
local oHttp, oUrl
    
   oUrl := "http://www.integracao.php"
   oHttp:= TipClientHttp():New( oURL ) 
   oHttp:open(oUrl)
   oHttp:close()

Return
Samuk.exe
Usuário Nível 2
Usuário Nível 2
Mensagens: 65
Registrado em: 25 Mai 2010 15:58
Localização: anapolis

Enviar comando Http

Mensagem por Samuk.exe »

BOa NOite yugi386, muito obrigado pela resposta

Baseado no seu consegui fazer funcionar!

Codigo Aprimorado abaixo:

Código: Selecionar todos

************
function vip
************
parameters nCupom , qLitros , vUnitario , dataCupom , horaCupom , cpfCliente
local oHttp, oUrl
 , cUrl


cUrl := "integracao.php?modulo=cuponsFiscais&acao=adicionarCupomIntegracao&usuario=integracao&senha=1nt3gr4c4o&masterkey=autocom&codigoCliente=1020&parametro1="
cUrl := cUrl + alltrim(str(nCupom))      +";"
cUrl := cUrl + alltrim(str(qLitros))     +";"             && Formato 10.00
cUrl := cUrl + alltrim(str(vUnitario))   +"&parametro2="  && Formato 1.79
cUrl := cUrl + dataCupom   +";"             && Formato 05/09/2013
cUrl := cUrl + horaCupom   +"&parametro3="  && Formato 11:00
cUrl := cUrl + cpfCliente

oUrl := TURL():New( "http://www.cmcsys.com.br")
oUrl:cPath := "/2013"

oHttp:= TipClientHttp():New( oURL ) 
 

oUrl:cFile := cUrl

If oHttp:open(oUrl)
   if oHttp:Read() != NIL 
       msgInfo("Comando enviado Com Sucesso!")
   else
       msgInfo("Sem Conexão Com a Internet")
   endif
else
   msgInfo("Erro ao Enviar Comando!")
endif

oHttp:close()

return nil
Percebi que só enviava realmente o comando para o servidor somente se eu desse um Read!

Obrigado a Todos! :D
Responder