It is currently 21 April 2025, 19:08 Advanced search

Problema URL ritornato da WebAPI

Domande e risposte su come utilizzare Instant Developer Cloud al meglio

Problema URL ritornato da WebAPI

Postby luca.gozzi » 12 February 2016, 13:26

Salve,
in un progetto InDe Cloud chiamo una WebAPI fatta con InDe Foundation per farmi mandare l'indirizzo URL del cliente.
Lato backoffice encodo l'URL con URLEncode(), e lo mando all'app con WebApiService.setResponse().
Sull'app mobile prendo l'indirizzo ed applico il metodo js decodeURIComponent().
In un form ho un'immagine e voglio settare la sua proprietà src con l'indirizzo ritornato della WebAPI.
Eseguendo l'applicazione non vedo l'immagine perchè, ispezionando l'elemento, noto che viene aggiunta la stringa "" e quindi la proprità src diventa: "http://miaApplicazione.it/images/miaImmagine.png"

Queste di seguito le poche righe di codice:

Code: Select all
var url = app.fs.url("http://miaApplicazione.it/MIAWEBAPI");
var head = {
  "X-HTTP-Method-Override" : "GetBaseURL",
  "code" : '37028'
};
var opt = {headers : head};
var r = yield url.get(opt);
 
$image.src = decodeURIComponent(r.body) + '/images/miaImmagine.png';


Se guardo console.log(r.body) e console.log(decodeURIComponent(r.body)) vedo esattamente quello che mi aspetto di vedere.
Anche provando ad usare il metodo JSON.stringify(r.body) il risultato non cambia.

A nessuno è capitato?
In che punto potrebbe essere l'errore?

Grazie
luca.gozzi
 
Posts: 15
Joined: 28 July 2015, 12:06

Re: Problema URL ritornato da WebAPI

Postby d.pierangeli » 13 February 2016, 11:01

Quel carattere è il BOM UTF-8.

Viene aggiunto in una conversione a UTF-8, forse da IIS (o tomcat) (visto che Foundation scrive in ANSI) o dalla HTTPXmlRequest.

Probabilmente con una replace te ne liberi senza problemi.
User avatar
d.pierangeli
Pro Gamma
Pro Gamma
 
Posts: 8092
Joined: 30 September 2010, 15:35

Re: Problema URL ritornato da WebAPI

Postby luca.gozzi » 15 February 2016, 8:51

Ciao Diego,
avevo già provato a fare un replace per cercare di togliere quel carattere dalla mia stringa, ma il fatto è che la stringa che ricevo è corretta!
In pratica, quel carattere speciale nella mia stringa non esiste, quindi non riesco a fare il replace di niente.
Sto cercando online altre soluzione senza però trovare nulla.
luca.gozzi
 
Posts: 15
Joined: 28 July 2015, 12:06

Re: Problema URL ritornato da WebAPI

Postby luca.gozzi » 15 February 2016, 9:03

In realtà avrei appena risolto utilizzando questa funzione che pulisce la stringa contenente l'URL.

Code: Select all
function cleanString(input) {
    var output = "";
    for (var i=0; i<input.length; i++) {
        if (input.charCodeAt(i) <= 127) {
            output += input.charAt(i);
        }
    }
    return output;
}


Può andar bene come soluzione, o posso andare incontro a problemi che ora mi sfuggono?
In questo caso sto trattando esclusivamente un URL.

Grazie
luca.gozzi
 
Posts: 15
Joined: 28 July 2015, 12:06

Re: Problema URL ritornato da WebAPI

Postby d.pierangeli » 15 February 2016, 9:46

Non saprei, dipende che caratteri ci sono dopo il 127, in generale sembra essere ok.
User avatar
d.pierangeli
Pro Gamma
Pro Gamma
 
Posts: 8092
Joined: 30 September 2010, 15:35


Return to Tips & Tricks - Cloud

Who is online

Users browsing this forum: No registered users and 6 guests

cron