Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Convertire gli spazi in un url

    Ciao,
    come si fa a sostituire gli spazi di un parametro dell'url?

    Ho provato con URLEncoder sull'intero URL ma modifica tutto l'url ottenendo un MalformedURL Exception...
    Applicando invece URLEncoder sul singolo parametro, allora funziona?

    Ma è l'unico metodo? Agire parametro per parametro?

    Grazie mille e ciao a tutti.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Non so se ho capito esattamente quale sia la tua problematica (nel caso, prova a spiegarla meglio con degli esempi), ma è chiaro che l'encoding va fatto solo sul singolo valore di ciascun parametro.

    URLEncoder prende una stringa e la trasforma nel formato "application/x-www-form-urlencoded", ovvero il formato appropriato per l'invio di tale dato tramite URL. E' chiaro che se gli passi tutto l'URL, lui converte tutto, come se quello fosse il valore di un parametro.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Convertire gli spazi in un url

    Originariamente inviato da aironeangelo77
    Applicando invece URLEncoder sul singolo parametro, allora funziona?

    Ma è l'unico metodo? Agire parametro per parametro?
    Confermo quanto detto da LeleFT, l'obiettivo di URLEncoder è quello di codificare solo nomi/valori dei parametri.

    Es.

    codice:
    String url = "http://.......?" +
           URLEncoder.encode("param one", "UTF-8") + "=" + URLEncoder.encode("100%", "UTF-8") + "&" +
           URLEncoder.encode(altroNomeStr, "UTF-8") + "=" + URLEncoder.encode(altroValoreStr, "UTF-8");
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Risposte perfette...

    Ma se volessi codificare l'intero Url, c'è un metodo o modo?

    Grazie mille.

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da aironeangelo77
    Ma se volessi codificare l'intero Url, c'è un metodo o modo?
    Ribadisco che la questione è posta male. Non si può encodare "brutalmente" un URL. Gli '/' vanno lasciati tali, idem '?' '&' '=' usati per la query string.

    Se si ha una stringa con un URL completo e ammesso che non sia già (anche parzialmente) encodata e ammesso che nella parte di query non ci siano come nomi/valori gli stessi caratteri di separazione (che confonderebbero), si potrebbe fare una codifica del URL ma solo spezzando e analizzando le singole parti e i singoli pezzi del path.

    Es.

    http://www.blabla.com/hello world/prova.jsp?par1=ciao mondo&first count=1234

    Solo le parti in rosso andrebbero codificate. Ma questo vorrebbe dire spezzare accuratamente l'URL, codificare i pezzi di path (perché appunto i / non vanno toccati) e i nomi/valori e poi ricomporre tutto quanto.

    Nel framework standard un metodo che fa questo non mi pare proprio che esista. Se esiste in una qualche altra libreria .... non lo so.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.