HttpClient.getParams()已弃用。我应该怎么用呢?
我正在使用apache-httpclient-4.3。我将分析一个HTTP请求,尤其是查询字符串参数,但是
@Deprecatedpublic 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");
我找不到不使用不推荐使用的方法从我的 请求 对象读回参数( var1,var2 )的方法,这种方法应该很简单,以便从对象获取属性。 __
回答:
您可以使用URIBuilder对象
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();
我认为您对getParams()
来自客户端或HttpMethod
的方法有点困惑,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();
以上是 HttpClient.getParams()已弃用。我应该怎么用呢? 的全部内容, 来源链接: utcz.com/qa/421053.html