Hay forma de enviar una liga con método POST y obtener la salida en JSON desde FiveWin ?
o bien... hay forma de emular eso de alguna manera ?
Mi punto es el siguiente, necesito enviar desde mi aplicación de FiveWin, los datos de una ventana de captura, con la finalidad de que sean registrados en el servidor para su posterior lectura desde mi aplicación de iPad.
En resumen, sincronización.
Alguien ha hecho algo similar?
Alguna pista?
Gracias de antemano.
enviar POST y obtener Json
enviar POST y obtener Json
Juan Carlos Salinas Ojeda
México. D.F.
-------------------------------------------------
México. D.F.
-------------------------------------------------
- Daniel Garcia-Gil
- Posts: 2365
- Joined: Wed Nov 02, 2005 11:46 pm
- Location: Isla de Margarita
- Contact:
Re: enviar POST y obtener Json
Hola
si es posible y harbour te brinda el manejo nativo de JSON, el proceso es bastane simnple
este es el codigo que uso para hacer el request a la web
desde la web retornas un simple string con formato json (php, ruby, etc te dan soporte para eso)
ejemplo
^[{"fecha":"2012/05/21","cliente":"Harbour"}, {"fecha":"2012/05/21","cliente":"Fivewin"} ]
este simbolo "^" es importate para simplificar la tarea de separar la cabecera del mensaje
eso lo ves en esta parte del codigo
despues para tratar la respuesta es lo siguiente
la variable json tendra el hash con la la informacion... segun el ejemplo anterio, quedaria de esta manera
{ { "fecha" => "2012/05/21", "cliente"=>"harbour" }, { "fecha" => "2012/05/20", "cliente"=>"Fivewin" } }
? jSon[ 1 ][ "fecha" ] // 2012/05/21
? jSon[ 1 ][ "cliente" ] // Harbour
? jSon[ 2 ][ "fecha" ] // 2012/05/20
? jSon[ 2 ][ "cliente" ] // fivewin
si es posible y harbour te brinda el manejo nativo de JSON, el proceso es bastane simnple
este es el codigo que uso para hacer el request a la web
Code: Select all | Expand
#define SEPCHAR "^"FUNCTION GetDatas( cUrl, cHost ) LOCAL cRequest LOCAL cResponse LOCAL cBuffer LOCAL pSocket LOCAL nBytes LOCAL nMaxBuff := 1024 LOCAL aResponse := {} DEFAULT cHost := SET_HOST HB_INetInit() if cHost == SET_HOST cUrl := "/webservice/"+cUrl endif pSocket := HB_INetConnect( cHost, 80 ) IF HB_INetErrorCode( pSocket ) <> 0 RETURN NIL ELSE cRequest := strTran( SET_REQUEST, "[URL]", cUrl ) cRequest := strTran( cRequest, "[HOST]", cHost ) nBytes := HB_INetSend( pSocket, cRequest ) cBuffer := SPACE(nMaxBuff) cResponse := "" DO WHILE nBytes > 0 nBytes := HB_INetRecv( pSocket, @cBuffer ) cResponse += LEFT( cBuffer, nBytes ) cBuffer := SPACE(nMaxBuff) ENDDO cResponse := HB_TRANSLATE( cResponse, "UTF8", "EN" ) aResponse = hb_ATokens( cResponse,SEPCHAR ) aResponse = ADel( aResponse, 1 ) aResponse = ASize( aResponse, Len( aResponse ) - 1 ) ENDIF HB_INetClose( pSocket ) HB_INetCleanUp() if aResponse == NIL aResponse = {} endif RETURN aResponse
desde la web retornas un simple string con formato json (php, ruby, etc te dan soporte para eso)
ejemplo
^[{"fecha":"2012/05/21","cliente":"Harbour"}, {"fecha":"2012/05/21","cliente":"Fivewin"} ]
este simbolo "^" es importate para simplificar la tarea de separar la cabecera del mensaje
eso lo ves en esta parte del codigo
Code: Select all | Expand
aResponse = hb_ATokens( cResponse,SEPCHAR ) aResponse = ADel( aResponse, 1 ) aResponse = ASize( aResponse, Len( aResponse ) - 1 )
despues para tratar la respuesta es lo siguiente
Code: Select all | Expand
aPack = GetDatas( "mirequest", "mipagina.com" ) hb_jsonDecode( aPack[ 1 ], @jSon )
la variable json tendra el hash con la la informacion... segun el ejemplo anterio, quedaria de esta manera
{ { "fecha" => "2012/05/21", "cliente"=>"harbour" }, { "fecha" => "2012/05/20", "cliente"=>"Fivewin" } }
? jSon[ 1 ][ "fecha" ] // 2012/05/21
? jSon[ 1 ][ "cliente" ] // Harbour
? jSon[ 2 ][ "fecha" ] // 2012/05/20
? jSon[ 2 ][ "cliente" ] // fivewin
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
Re: enviar POST y obtener Json
Muchas gracias Daniel... mi pregunta ahora es.. esto va con harbour... yo uso xHarbour, habrá algún problema ?
Juan Carlos Salinas Ojeda
México. D.F.
-------------------------------------------------
México. D.F.
-------------------------------------------------
- Daniel Garcia-Gil
- Posts: 2365
- Joined: Wed Nov 02, 2005 11:46 pm
- Location: Isla de Margarita
- Contact:
Re: enviar POST y obtener Json
al parecer xharbour tambien tiene soporte para json, el tema ahora es probarlo
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
Re: enviar POST y obtener Json
Exceente !!! Muchísimas gracias !!!
Ya les platicaré.
Ya les platicaré.
Juan Carlos Salinas Ojeda
México. D.F.
-------------------------------------------------
México. D.F.
-------------------------------------------------
- Daniel Garcia-Gil
- Posts: 2365
- Joined: Wed Nov 02, 2005 11:46 pm
- Location: Isla de Margarita
- Contact:
Re: enviar POST y obtener Json
faltaron estos define
Code: Select all | Expand
#define SET_HOST "mihost.com"#define SET_REQUEST "GET [URL] HTTP/1.0" + CRLF + ; "Host: [HOST]" + CRLF + ; 'User-Agent: Mozilla/5.0 Firefox/3.6.12' + CRLF +; 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' + CRLF +; 'Accept-Language: en-us,en;q=0.5' + CRLF +; 'Accept-Encoding: deflate' + CRLF +; 'Accept-Charset: utf-8;q=0.7,*;q=0.7' + CRLF +; "Connection: Close" + CRLF +; CRLF
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9