Page 1 of 1

Peticion por URL

Posted: Mon Aug 10, 2020 10:45 pm
by servicomver
Hola, como puedo mandar peticiones a una URL y obtener respuesta de las mismas ?
por ejemplo
https://192.168.0.2/ServerPos/index.php? operation=doTest&name=admin&password=123
necesito obtener una respuesta de esa petición, la pregunta es:
1.-Como hago la petición en formato JSON
2.-Como obtengo la respuesta

Ya busqué algunos ejemplos pero no he logrado nada, es necesario alguna librería o conector ?
Gracias por su tiempo, saludos.

oHttp:= CreateObject("Microsoft.XMLHTTP")
cUrl = "https://192.168.0.2/ServerPos/index.php?"
oHttp:Open( "POST", cUrl, .F.)
oHttp:setRequestHeader( "Content-type", "text/json" )
cJson :='{"name":"admin","password":"123"}'
oHttp:Send(cJson) ("Aquí sale error de conexión")

Re: Peticion por URL

Posted: Tue Aug 11, 2020 8:36 am
by cnavarro
servicomver wrote:Hola, como puedo mandar peticiones a una URL y obtener respuesta de las mismas ?
por ejemplo
https://192.168.0.2/ServerPos/index.php? operation=doTest&name=admin&password=123
necesito obtener una respuesta de esa petición, la pregunta es:
1.-Como hago la petición en formato JSON
2.-Como obtengo la respuesta

Ya busqué algunos ejemplos pero no he logrado nada, es necesario alguna librería o conector ?
Gracias por su tiempo, saludos.

oHttp:= CreateObject("Microsoft.XMLHTTP")
cUrl = "https://192.168.0.2/ServerPos/index.php?"
oHttp:Open( "POST", cUrl, .F.)
oHttp:setRequestHeader( "Content-type", "text/json" )
cJson :='{"name":"admin","password":"123"}'
oHttp:Send(cJson) ("Aquí sale error de conexión")
Lo que te falta es mirar la respuesta obtenida

Code: Select all

           local cResponse  := ""
           local cMyRespuesta

.../...
// Tu codigo anterior, y después del Send, esto

           cResponse := ohttp:responseText
            cMyRespuesta  := hash()
            hb_jsondecode( cResponse , @cMyrespuesta ) 
            XBrowse( cMyRespuesta )         // ? cMyRespuesta

 

Re: Peticion por URL

Posted: Wed Aug 12, 2020 4:20 pm
by servicomver
Muchisimas gracias, efectivamente no recogia la respuesta. Otra consulta:

hay alguna forma de usar hb_jsonEncode y hb_jsonDecode en xHarbour ?, que tengo que hacer para usarlas ?

Gracias

Re: Peticion por URL

Posted: Wed Aug 12, 2020 9:35 pm
by Enrico Maria Giordano
They are available in xHarbour too.

EMG

Re: Peticion por URL

Posted: Fri Oct 09, 2020 2:11 pm
by lorenzoazz
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 dosen't exist

Can anyone help me??