Y a-t-il une bibliothèque de Java largement utilisée qui fait quelque chose comme ce que dojo.ObjectToquery () fait? Par exemple. (en supposant l'utilisation de HTTPCORE's httpparams objet, mais n'importe quelle clé la cartographie de la valeur fera): devrait donner "foo = bar & thud = grunt". p> Je sais que ce n'est pas difficile d'écrire mais il semble que cela aurait déjà dû être écrit. Je ne peux tout simplement pas le trouver. P> p>
5 Réponses :
Vous n'avez pas vraiment besoin d'une bibliothèque pour cela. Je n'en ai pas trouvé un à httpcore non plus alors j'ai écrit quelque chose comme ça,
public String toString() { StringBuilder sb = new StringBuilder(baseUrl); char separator; if (baseUrl.indexOf('?') > 0) separator = '&'; else separator = '?'; for (Parameter p : parameters) { sb.append(separator); try { sb.append(URLEncoder.encode(p.name, "UTF-8")); if (p.value != null) { sb.append('='); sb.append(URLEncoder.encode(p.value, "UTF-8")); } } catch (UnsupportedEncodingException e) { // Not really possible, throw unchecked exception throw new IllegalStateException("No UTF-8"); } separator = '&'; } return sb.toString(); }
Si vous avez JAX-RS, il y a Javax.ws.rs.core.uribuilder; Autre que cela devrait principalement être au courant de l'urlencoder et de l'Urldecoder qui encoderont au moins les pièces de la liste des paramètres. P>
J'ai fini par écrire le mien. Il peut être appelé comme ce qui n'est pas si mauvais. P>
Il y a beaucoup de bibliothèques qui peuvent vous aider avec le bâtiment URI (ne réinventez pas la roue). Voici un pour vous aider à démarrer:
import org.springframework.web.util.UriComponentsBuilder; ... return UriComponentsBuilder.fromUriString(url).queryParam(key, value).build().toUri();
Veuillez ne pas publier Réponses en double - 2 < / a> - 3 - 4 a >. Au lieu de cela, signalez la question comme un duplicata si vous le croyez.
Il s'avère que httpparams n'était rien comme si j'avais pensé quand j'ai écrit cette question.