Apache-httpclient-4.3を使用しています。 HTTPリクエスト、特にクエリ文字列パラメーターを分析しますが、
@Deprecated
public HttpParams getParams()
Deprecated. (4.3) use constructor parameters of configuration API provided by HttpClient
これが何を意味するのか理解できない。構成APIのコンストラクターパラメーターを使用する必要があります(これは何ですか?HostConfigurationはクラスとして使用できなくなりました)。しかし、構築段階では、URLを介してクエリパラメータを直接渡します。
HttpGet request = new HttpGet("http://example.com/?var1=value1&var2=value2");
非推奨のメソッドを使用せずにrequestオブジェクトからパラメータ(var1、var2)を読み戻す方法が見つかりません。オブジェクト。
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();
_
クライアントまたはHttpMethodのgetParams()
メソッドについて少し混乱していると思います。getParams()
はURLパラメータなどを返さず、接続タイムアウト、プロキシなどのクライアントパラメータを返します、Cookie ...など
4.3.2より前では、getParams()
メソッド(非推奨)を使用してクライアントにパラメーターを設定できました。4.3.2より後では、RequestConfig
を使用してBuilder
クラスを介して要求パラメーターを設定できます
_Builder requestConfigBuilder = RequestConfig.custom();
requestConfigBuilder.setConnectionRequestTimeout(1000).setMaxRedirects(1);
_
そして、HttpMethod
のみに設定します(以前のようなクライアントには設定しません)
_request.setConfig(requestConfigBuilder.build());
_
更新:
HttpGet
またはHttPost
要求オブジェクトからURIパラメーターを取得する場合は、URIBuilder
を同じ方法で使用できます
_HttpGet request = new HttpGet("http://example.com/?var=1&var=2");
URIBuilder newBuilder = new URIBuilder(request.getURI());
List<NameValuePair> params = newBuilder.getQueryParams();
_