How to get http response text
-
- Posts: 28
- Joined: Mon Jun 29, 2015 7:41 am
How to get http response text
Hi, i am fivewin/xharbour programmer and i am trying to capture the response from an http request ( i need to send an address and obtain the POSTAL ITALIAN CODE).
I tried this
Function http(therequest)
Local oHttp
default therequest:= "https://www.nonsolocap.it/cap?k=calori&b=&c=bologna"
Try
* oHttp := CreateObject( "winhttp.winhttprequest.5.1" )
oHttp:= CreateObject("Microsoft.XMLHTTP")
Catch
MsgInfo("errore connessione msxml2, uso microsoft ")
oHttp := CreateObject( 'Microsoft.XMLHTTP' )
End
oHttp:Open( 'GET', therequest, .F. )
oHttp:SetRequestHeader( "Content-Type","application/json")
oHttp:Send()
Try
cResp := oHttp:ResponseBody
Catch
MsgInfo("errore responsebody")
End
*oHttp:SetRequestHeader( "Content-Type","application/json")
SysRefresh()
MsgInfo(cResp)
Return
But i get the error from oHttp:ResponseBody : cresp does not exist
Can anyone help me??
lorenzoazz
I tried this
Function http(therequest)
Local oHttp
default therequest:= "https://www.nonsolocap.it/cap?k=calori&b=&c=bologna"
Try
* oHttp := CreateObject( "winhttp.winhttprequest.5.1" )
oHttp:= CreateObject("Microsoft.XMLHTTP")
Catch
MsgInfo("errore connessione msxml2, uso microsoft ")
oHttp := CreateObject( 'Microsoft.XMLHTTP' )
End
oHttp:Open( 'GET', therequest, .F. )
oHttp:SetRequestHeader( "Content-Type","application/json")
oHttp:Send()
Try
cResp := oHttp:ResponseBody
Catch
MsgInfo("errore responsebody")
End
*oHttp:SetRequestHeader( "Content-Type","application/json")
SysRefresh()
MsgInfo(cResp)
Return
But i get the error from oHttp:ResponseBody : cresp does not exist
Can anyone help me??
lorenzoazz
- Enrico Maria Giordano
- Posts: 7355
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Contact:
Re: How to get http response text
Code: Select all
#Include "FiveWin.ch"
#Include "Fileio.ch"
#ifdef __XHARBOUR__ // xHarbour
#include "tip.ch"
#endif
FUNCTION http( therequest )
LOCAL oHttp, cResp
DEFAULT therequest := "https://www.nonsolocap.it/cap?k=calori&b=&c=bologna"
/*
Try
oHttp := CreateObject( "Microsoft.XMLHTTP" )
Catch
MsgInfo( "errore connessione msxml2, uso microsoft " )
oHttp := CreateObject( 'Microsoft.XMLHTTP' )
End
*/
#ifdef __XHARBOUR__ // xHarbour
Try
// oHttp := CreateObject( "Microsoft.XMLHTTP" ) // no funciona
oHttp := CreateObject( "MSXML2.ServerXMLHTTP.6.0" ) // funciona.
Catch
MsgInfo( "errore connessione msxml2, uso microsoft " )
Return Nil
End
#else
Try
oHttp := win_OleCreateObject( "MSXML2.ServerXMLHTTP.5.0" )
Catch
MsgInfo( "errore connessione msxml2, uso microsoft " )
RETURN Nil
End
#endif
/*
oHttp:Open( 'GET', therequest, .F. )
oHttp:SetRequestHeader( "Content-Type", "application/json" )
oHttp:Send()
Try
cResp := oHttp:ResponseBody
Catch
MsgInfo( "errore responsebody" )
End
*/
Try
oHttp:Open( 'GET', therequest, .F. )
oHttp:SetRequestHeader( "Content-Type", "application/json" )
oHttp:Send()
oHttp:WaitForResponse( 10000 )
cResp := oHttp:ResponseBody
Catch
MsgInfo( "errore responsebody" )
End
SysRefresh()
MsgInfo( cResp )
RETURN NIL
// fin
João Santos - São Paulo - Brasil
-
- Posts: 28
- Joined: Mon Jun 29, 2015 7:41 am
Re: How to get http response text
I tried the example posted but i still get the same error, the problem rises when i call ohttp:responsebody
(seems that ohttp:responsebody is null)
(seems that ohttp:responsebody is null)
-
- Posts: 28
- Joined: Mon Jun 29, 2015 7:41 am
Re: How to get http response text
Non funziona , l'errore è causato da ohttp:responsebody che sembra non essere accessibile e comunque non ritorna nessuna stringa (credo sia null)Enrico Maria Giordano wrote:Your sample works fine here.
EMG
Prima non ho errori !
Lorenzo
-
- Posts: 28
- Joined: Mon Jun 29, 2015 7:41 am
Re: How to get http response text
--------------------------------------------------------karinha wrote:Regards, saludos.Code: Select all
#Include "FiveWin.ch" #Include "Fileio.ch" #ifdef __XHARBOUR__ // xHarbour #include "tip.ch" #endif FUNCTION http( therequest ) LOCAL oHttp, cResp DEFAULT therequest := "https://www.nonsolocap.it/cap?k=calori&b=&c=bologna" /* Try oHttp := CreateObject( "Microsoft.XMLHTTP" ) Catch MsgInfo( "errore connessione msxml2, uso microsoft " ) oHttp := CreateObject( 'Microsoft.XMLHTTP' ) End */ #ifdef __XHARBOUR__ // xHarbour Try // oHttp := CreateObject( "Microsoft.XMLHTTP" ) // no funciona oHttp := CreateObject( "MSXML2.ServerXMLHTTP.6.0" ) // funciona. Catch MsgInfo( "errore connessione msxml2, uso microsoft " ) Return Nil End #else Try oHttp := win_OleCreateObject( "MSXML2.ServerXMLHTTP.5.0" ) Catch MsgInfo( "errore connessione msxml2, uso microsoft " ) RETURN Nil End #endif /* oHttp:Open( 'GET', therequest, .F. ) oHttp:SetRequestHeader( "Content-Type", "application/json" ) oHttp:Send() Try cResp := oHttp:ResponseBody Catch MsgInfo( "errore responsebody" ) End */ Try oHttp:Open( 'GET', therequest, .F. ) oHttp:SetRequestHeader( "Content-Type", "application/json" ) oHttp:Send() oHttp:WaitForResponse( 10000 ) cResp := oHttp:ResponseBody Catch MsgInfo( "errore responsebody" ) End SysRefresh() MsgInfo( cResp ) RETURN NIL // fin
I tried the example posted but i still get the same error, the problem rises when i call ohttp:responsebody
(seems that ohttp:responsebody is null)
Regards
- Enrico Maria Giordano
- Posts: 7355
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Contact:
Re: How to get http response text
Qui funziona regolarmente e ohttp:responsebody contiene la pagina web di risposta.lorenzoazz wrote:Non funziona , l'errore è causato da ohttp:responsebody che sembra non essere accessibile e comunque non ritorna nessuna stringa (credo sia null)Enrico Maria Giordano wrote:Your sample works fine here.
EMG
Prima non ho errori !
Lorenzo
EMG
-
- Posts: 28
- Joined: Mon Jun 29, 2015 7:41 am
Re: How to get http response text
Forse devo linkare qualche libreria che non ho caricato? ( ho incluso anche tip.ch)Enrico Maria Giordano wrote:Qui funziona regolarmente e ohttp:responsebody contiene la pagina web di risposta.lorenzoazz wrote:Non funziona , l'errore è causato da ohttp:responsebody che sembra non essere accessibile e comunque non ritorna nessuna stringa (credo sia null)Enrico Maria Giordano wrote:Your sample works fine here.
EMG
Prima non ho errori !
Lorenzo
EMG
- Enrico Maria Giordano
- Posts: 7355
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Contact:
Re: How to get http response text
No, non credo. Vuoi che ti mandi il mio EXE così lo provi da te? Se sì, mandami un indirizzo email che accetti gli EXE.
EMG
EMG
- FranciscoA
- Posts: 1964
- Joined: Fri Jul 18, 2008 1:24 am
- Location: Chinandega, Nicaragua, C.A.
Re: How to get http response text
Lorenzo:karinha wrote:Regards, saludos.Code: Select all
#Include "FiveWin.ch" #Include "Fileio.ch" #ifdef __XHARBOUR__ // xHarbour #include "tip.ch" #endif FUNCTION http( therequest ) LOCAL oHttp, cResp DEFAULT therequest := "https://www.nonsolocap.it/cap?k=calori&b=&c=bologna" /* Try oHttp := CreateObject( "Microsoft.XMLHTTP" ) Catch MsgInfo( "errore connessione msxml2, uso microsoft " ) oHttp := CreateObject( 'Microsoft.XMLHTTP' ) End */ #ifdef __XHARBOUR__ // xHarbour Try // oHttp := CreateObject( "Microsoft.XMLHTTP" ) // no funciona oHttp := CreateObject( "MSXML2.ServerXMLHTTP.6.0" ) // funciona. Catch MsgInfo( "errore connessione msxml2, uso microsoft " ) Return Nil End #else Try oHttp := win_OleCreateObject( "MSXML2.ServerXMLHTTP.5.0" ) Catch MsgInfo( "errore connessione msxml2, uso microsoft " ) RETURN Nil End #endif /* oHttp:Open( 'GET', therequest, .F. ) oHttp:SetRequestHeader( "Content-Type", "application/json" ) oHttp:Send() Try cResp := oHttp:ResponseBody Catch MsgInfo( "errore responsebody" ) End */ Try oHttp:Open( 'GET', therequest, .F. ) oHttp:SetRequestHeader( "Content-Type", "application/json" ) oHttp:Send() oHttp:WaitForResponse( 10000 ) cResp := oHttp:ResponseBody Catch MsgInfo( "errore responsebody" ) End SysRefresh() MsgInfo( cResp ) RETURN NIL // fin
El codigo modificado por Joao (Karinha), funciona sin problemas, aquí.
Da la impresión de que el error que obtienes con tu codigo ("cresp does not exist") , es debido a variable no declarada.
Francisco J. Alegría P.
Chinandega, Nicaragua.
Fwxh1204-MySql-TMySql
Chinandega, Nicaragua.
Fwxh1204-MySql-TMySql
-
- Posts: 28
- Joined: Mon Jun 29, 2015 7:41 am
Re: How to get http response text
-------------------------------------------FranciscoA wrote:Lorenzo:karinha wrote:Regards, saludos.Code: Select all
#Include "FiveWin.ch" #Include "Fileio.ch" #ifdef __XHARBOUR__ // xHarbour #include "tip.ch" #endif FUNCTION http( therequest ) LOCAL oHttp, cResp DEFAULT therequest := "https://www.nonsolocap.it/cap?k=calori&b=&c=bologna" /* Try oHttp := CreateObject( "Microsoft.XMLHTTP" ) Catch MsgInfo( "errore connessione msxml2, uso microsoft " ) oHttp := CreateObject( 'Microsoft.XMLHTTP' ) End */ #ifdef __XHARBOUR__ // xHarbour Try // oHttp := CreateObject( "Microsoft.XMLHTTP" ) // no funciona oHttp := CreateObject( "MSXML2.ServerXMLHTTP.6.0" ) // funciona. Catch MsgInfo( "errore connessione msxml2, uso microsoft " ) Return Nil End #else Try oHttp := win_OleCreateObject( "MSXML2.ServerXMLHTTP.5.0" ) Catch MsgInfo( "errore connessione msxml2, uso microsoft " ) RETURN Nil End #endif /* oHttp:Open( 'GET', therequest, .F. ) oHttp:SetRequestHeader( "Content-Type", "application/json" ) oHttp:Send() Try cResp := oHttp:ResponseBody Catch MsgInfo( "errore responsebody" ) End */ Try oHttp:Open( 'GET', therequest, .F. ) oHttp:SetRequestHeader( "Content-Type", "application/json" ) oHttp:Send() oHttp:WaitForResponse( 10000 ) cResp := oHttp:ResponseBody Catch MsgInfo( "errore responsebody" ) End SysRefresh() MsgInfo( cResp ) RETURN NIL // fin
El codigo modificado por Joao (Karinha), funciona sin problemas, aquí.
Da la impresión de que el error que obtienes con tu codigo ("cresp does not exist") , es debido a variable no declarada.
thank you
now I have declared
local cresp:="vuoto"
but cresp remains "vuoto" (unchanged)
the problem cames when i call oHttp:ResponseBody
-
- Posts: 28
- Joined: Mon Jun 29, 2015 7:41 am
Re: How to get http response text
Grazie Enrico ma io devo capire il motivo dell'errore per poter programmare la logica successiva, in realtà poi dovrei creare un DOM e poi cercare tra i nodi del documento html ottenuto in risposta.Enrico Maria Giordano wrote:No, non credo. Vuoi che ti mandi il mio EXE così lo provi da te? Se sì, mandami un indirizzo email che accetti gli EXE.
EMG
Lorenzo
- Enrico Maria Giordano
- Posts: 7355
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Contact:
Re: How to get http response text
Che versione di Windows stai usando? Dall'errore sembra che la DLL relativa al componente non supporti quella proprietà, cosa che mi sembra assurda. E comunque la prova dell'EXE può essere utile per avere qualche indizio in più.
EMG
EMG
-
- Posts: 28
- Joined: Mon Jun 29, 2015 7:41 am
Re: How to get http response text
uso windows 10Enrico Maria Giordano wrote:Che versione di Windows stai usando? Dall'errore sembra che la DLL relativa al componente non supporti quella proprietà, cosa che mi sembra assurda. E comunque la prova dell'EXE può essere utile per avere qualche indizio in più.
EMG
ok inviami l'exe per provare via mail a lorenzoazzolini@gmail.com rinominando l'exe a .txt
Grazie
- Enrico Maria Giordano
- Posts: 7355
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Contact: