J'utilise Apache-httpclient-4.3. J'analyserais une requête http, en particulier les paramètres de la chaîne de requête, mais
@Deprecated
public HttpParams getParams()
Deprecated. (4.3) use constructor parameters of configuration API provided by HttpClient
Je ne suis pas sûr de comprendre ce que cela signifie. Je devrais utiliser les paramètres du constructeur de certaines API de configuration (qu'est-ce que c'est? HostConfiguration n'est plus disponible en tant que classe). Mais pendant la phase de construction, je passe directement les paramètres de requête via l'URL:
HttpGet request = new HttpGet("http://example.com/?var1=value1&var2=value2");
Je ne peux pas trouver un moyen de relire les paramètres (var1, var2) de mon objet request sans utiliser des méthodes obsolètes, ce qui devrait être simple pour obtenir les attributs d'un objet.
Vous pouvez utiliser un objet RIBuilder
URIBuilder builder = new URIBuilder("http://example.com/");
builder.setParameter("var1", "value1").setParameter("var2", "value2");
HttpGet request = new HttpGet(builder.build());
// get back the url parameters
List<NameValuePair> params = builder.getQueryParams();
Je pense que vous êtes un peu confus au sujet de la méthode getParams()
du client ou HttpMethod, getParams()
ne renvoie pas les paramètres URL ou quelque chose comme ça, retourne les paramètres client comme le délai de connexion, le proxy , cookies ... etc
Avant 4.3.2, vous pouviez définir les paramètres pour le client à l'aide de la méthode getParams()
(obsolète maintenant), après 4.3.2, vous pouvez définir les paramètres de demande via la classe RequestConfig
à l'aide d'un Builder
Builder requestConfigBuilder = RequestConfig.custom();
requestConfigBuilder.setConnectionRequestTimeout(1000).setMaxRedirects(1);
puis définissez le HttpMethod
uniquement (pas au client comme avant)
request.setConfig(requestConfigBuilder.build());
Mise à jour:
Si vous souhaitez obtenir les paramètres URI d'un objet de demande HttpGet
ou HttPost
, vous pouvez utiliser le URIBuilder
de la même manière
HttpGet request = new HttpGet("http://example.com/?var=1&var=2");
URIBuilder newBuilder = new URIBuilder(request.getURI());
List<NameValuePair> params = newBuilder.getQueryParams();