It is currently 9 June 2025, 7:53 Advanced search

getHttp e problema con url encode

Domande e risposte su come utilizzare Instant Developer Foundation al meglio

getHttp e problema con url encode

Postby donatzDea » 19 April 2024, 6:56

Salve,
ho un problema con la getHttp. Praticamente da documentazione del servizio che sto interrogando mi chiede di passare nella mia POST/PUT l'url "encodato" esempio: https://pippo.pluto.com/aaa%2Fbbbb <- quel %2F corrisponderebbe alla / che il servizio vuole sia chiamato dalla mia getHttp in questo modo.
Solo che nonostante faccia la URLEncode(aaa/bbbbb) e che sul debug mi venga effettivamente cambiato in %2F, la getHttp da Fiddler sembra che invii comunque aaa/bbbb facendomi rispondere dal servizio con un bel Not Found.

Come posso risolvere questo problema?

grazie
donatzDea
 
Posts: 226
Joined: 30 June 2014, 9:07

Re: getHttp e problema con url encode

Postby r.bianco » 22 April 2024, 8:16

Se non ricordo male, come spiegato nel manuale delle web api, sostituisco gli slash con la stringa ~~SLASH~~, i null con la stringa ~~NULL~~, i docid in GUID.
only work and no play makes jack a dull boy
r.bianco
 
Posts: 4979
Joined: 8 November 2010, 16:46

Re: getHttp e problema con url encode

Postby donatzDea » 22 April 2024, 9:19

r.bianco wrote:Se non ricordo male, come spiegato nel manuale delle web api, sostituisco gli slash con la stringa ~~SLASH~~, i null con la stringa ~~NULL~~, i docid in GUID.

grazie della risposta, mi puoi far sapere dove trovare questa info nel manuale? Ho fatto una ricerca con ~~SLASH~~ ma non trovo niente.
donatzDea
 
Posts: 226
Joined: 30 June 2014, 9:07

Re: getHttp e problema con url encode

Postby r.bianco » 22 April 2024, 9:39

Vero.
Ho preso spunto dal capitolo 1.3.7 Codifica dei valori della Guida Web API. In pratica, prima di chiamare getHTTP eseguo una codifica degli slash in ~~SLASH~~. Nella classe che riceve la richiesta, intercetto l'evento OnWebAPI ed eseguo la decodifica.
only work and no play makes jack a dull boy
r.bianco
 
Posts: 4979
Joined: 8 November 2010, 16:46

Re: getHttp e problema con url encode

Postby donatzDea » 22 April 2024, 9:46

r.bianco wrote:Vero.
Ho preso spunto dal capitolo 1.3.7 Codifica dei valori della Guida Web API. In pratica, prima di chiamare getHTTP eseguo una codifica degli slash in ~~SLASH~~. Nella classe che riceve la richiesta, intercetto l'evento OnWebAPI ed eseguo la decodifica.

si infatti vedevo solo la parte NULL e non quella SLASH. Il mio problema però è un altro io posso agire solo sulla getHTTP perchè il servizio da chiamare è di google e quindi non è sotto il mio controllo :(
donatzDea
 
Posts: 226
Joined: 30 June 2014, 9:07

Re: getHttp e problema con url encode

Postby r.bianco » 22 April 2024, 10:44

Capito. E` un po' strano.
Se esegui la richiesta tramite Postman funziona?
only work and no play makes jack a dull boy
r.bianco
 
Posts: 4979
Joined: 8 November 2010, 16:46

Re: getHttp e problema con url encode

Postby donatzDea » 22 April 2024, 13:58

r.bianco wrote:Capito. E` un po' strano.
Se esegui la richiesta tramite Postman funziona?



si con postman con l'encode funziona correttamente. Vedremo in assistenza cosa mi dicono
donatzDea
 
Posts: 226
Joined: 30 June 2014, 9:07

Re: getHttp e problema con url encode

Postby d.pierangeli » 23 April 2024, 7:09

Sei in C# o java? Da quello che vedo in C# la webrequest si occupa lei di fare l'escape dei caratteri della stringa, non lo devi fare tu. In java dovrei controllare.

Puoi provare a usare sito/?valore_escaped ( https://pippo.pluto.com/?aaa%2Fbbbb) ?

La / è consentita nelle URL (nella parte dell'indirizzo della risorsa) quindi può essere che C# la rimetta a posto perchè pensa sia l'indirizzo, non il parametro. Se metti ? stai esplicitamente dicendo che la parte che segue è un parametro e quindi la / non è supportata e va encodata.
User avatar
d.pierangeli
Pro Gamma
Pro Gamma
 
Posts: 8129
Joined: 30 September 2010, 15:35

Re: getHttp e problema con url encode

Postby donatzDea » 23 April 2024, 7:18

d.pierangeli wrote:Sei in C# o java? Da quello che vedo in C# la webrequest si occupa lei di fare l'escape dei caratteri della stringa, non lo devi fare tu. In java dovrei controllare.

Puoi provare a usare sito/?valore_escaped ?

La / è consentita nelle URL (nella parte dell'indirizzo della risorsa) quindi può essere che C# la rimetta a posto perchè pensa sia l'indirizzo, non il parametro. Se metti ? stai esplicitamente dicendo che la parte che segue è un parametro e quindi la / non è supportata e va encodata.


Sono in C#, posso provare con ?escaped? ma il mio non è un parametro ma è una parte di indirizzo.
Il mio indirizzo è fatto da urlBase+/aaaa/bbbb, lo slash tra aaaa e bbbb deve essere encodato altrimenti google me lo rifiuta, ma non è un parametro passato dopo ?
donatzDea
 
Posts: 226
Joined: 30 June 2014, 9:07

Re: getHttp e problema con url encode

Postby d.pierangeli » 23 April 2024, 7:44

In questo caso (purtroppo) quell'URL è strana. La parte di indirizzo non richiede di escapare le / e purtroppo C# non sa che dall'altra parte lo vogliono così.

Bisognerebbe vedere se c'è qualche opzione della classe WebRequest di C# per evitare che faccia l'escape automatico e si fidi di quello che l'utente gli ha passato.
User avatar
d.pierangeli
Pro Gamma
Pro Gamma
 
Posts: 8129
Joined: 30 September 2010, 15:35


Return to Tips & Tricks - Foundation

Who is online

Users browsing this forum: Google [Bot], Majestic-12 [Bot] and 34 guests