Windev Mobile REST and Encode/Decode

Forum in Italiano NON ufficiale
Rispondi
Avatar utente
StefanoWx
Messaggi: 7
Iscritto il: mar nov 16, 2021 12:45 pm

Windev Mobile REST and Encode/Decode

Messaggio da StefanoWx »

Ho un codice che funziona, ma restituisce caratteri cinesi (in allegato), dove sbaglio ?
bufNewAspetto is Buffer
vAsp is Variant

h is httpRequest
h.Method = httpGet
h.URL = "http://localhost:8026/Aspetto"

r is httpResponse = RESTSend(h)
IF r.StatusCode = 200 THEN
Info(r.Content)
// SEGNALA WARNING When converting a buffer into Unicode string, the number of bytes in the buffer is not compatible with a Unicode
// string. Therefore, the buffer may not contain any Unicode string.
ELSE
Info("Errore", r.Content)
END

Grazie in anticipo
Allegati
display.png
display.png (194.44 KiB) Visto 7975 volte
marcov
Site Admin
Messaggi: 18
Iscritto il: mar nov 16, 2021 12:24 pm

Re: Windev Mobile REST

Messaggio da marcov »

Ciao,
avevo un errore uguale, ma io "cifro" la risposta per offuscare i dati che sono al interno di un JSON ma sono formattati in xml, comunque ho risolto lato cliente indicando che la risposta è ANSI string

Codice: Seleziona tutto

      
      		vResultJSON		is a JSON		= cMyResponse..Content
		sFromServer		is ANSI string
		vParameters		is Variant
		sResp			is ANSI string
		//Assegno il JSON  lo decodifico,Trasformo in Variabile e Poi in XML	
		sFromServer	= cMyResponse..Content
		vParameters	= JSONToVariant(vResultJSON)
		// Decodifico		
		sResp		= Decode(vParameters.Resp,encodeBASE64NoCR)
attenzione che anche lato server potresti avere problemi io codifico il tutto quindi lo devo decodificare, ma questo e il codice lato server

Codice: Seleziona tutto

	
		MyStringInUTF8 is Buffer = UTF8ToAnsi(sarrivato)
		sstringadec is ANSI string =Decode(sarrivato,encodeBASE64NoCR)
ovviamente dopo averlo ricevuto dal dispositivo.
sono alle primissime armi con WinDev quindi non ho trovato di meglio. comunque funziona.
Avatar utente
StefanoWx
Messaggi: 7
Iscritto il: mar nov 16, 2021 12:45 pm

Re: Windev Mobile REST

Messaggio da StefanoWx »

Grazie ci provo
marcov
Site Admin
Messaggi: 18
Iscritto il: mar nov 16, 2021 12:24 pm

Re: Windev Mobile REST

Messaggio da marcov »

Scusa dimenticavo, attento perché il simulatore e il vero Android hanno comportamenti differenti a livello di codifica delle stringe.
Avatar utente
StefanoWx
Messaggi: 7
Iscritto il: mar nov 16, 2021 12:45 pm

Re: Windev Mobile REST

Messaggio da StefanoWx »

Risolto così, grazie

Codice: Seleziona tutto

bufNewAspetto	is Buffer
sRisp is ANSI string
h is httpRequest
r is httpResponse

h.URL		= "http://localhost:8026/Aspetto" 
h.Method		= httpGet
h.ContentType	= "application/json"
h.Content		= bufNewAspetto

r = RESTSend(h)

sRisp	= r.Content
IF r.StatusCode = 200 THEN
	Info(sRisp)
ELSE
	Info("Errore", sRisp)
END
marcov
Site Admin
Messaggi: 18
Iscritto il: mar nov 16, 2021 12:24 pm

Re: Windev Mobile REST

Messaggio da marcov »

Ottimo, ricordati di testarlo anche su un dispositivo vero perché il simulatore ha un comportamento differente.

Buon Lavoro
Rispondi