gpt4 book ai didi

java - HttpClient.getParams() 已弃用。我应该改用什么?

转载 作者:IT老高 更新时间:2023-10-28 21:01:25 24 4
gpt4 key购买 nike

我正在使用 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)的方法,这应该很简单对象的属性。

最佳答案

您可以使用 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 获取 URI 参数或 HttPost您可以使用 URIBuilder 的请求对象以同样的方式

HttpGet request = new HttpGet("http://example.com/?var=1&var=2");

URIBuilder newBuilder = new URIBuilder(request.getURI());
List<NameValuePair> params = newBuilder.getQueryParams();

关于java - HttpClient.getParams() 已弃用。我应该改用什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22038957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com