Pagina 1 di 1
Windev Mobile REST and Encode/Decode
Inviato: mar nov 16, 2021 6:01 pm
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
Re: Windev Mobile REST
Inviato: mar nov 16, 2021 6:14 pm
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.
Re: Windev Mobile REST
Inviato: mar nov 16, 2021 6:19 pm
da StefanoWx
Grazie ci provo
Re: Windev Mobile REST
Inviato: mar nov 16, 2021 9:47 pm
da marcov
Scusa dimenticavo, attento perché il simulatore e il vero Android hanno comportamenti differenti a livello di codifica delle stringe.
Re: Windev Mobile REST
Inviato: mer nov 17, 2021 3:41 pm
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
Re: Windev Mobile REST
Inviato: mer nov 17, 2021 4:15 pm
da marcov
Ottimo, ricordati di testarlo anche su un dispositivo vero perché il simulatore ha un comportamento differente.
Buon Lavoro