java - 访问 HttpParams 的所有条目

标签 java apache-httpcomponents

有没有办法遍历 HttpParams 对象的所有条目?

其他人也有类似的问题 ( Print contents of HttpParams / HttpUriRequest? ),但答案并不奏效。

查看 BasicHttpParams 时我看到里面有一个HashMap,但是没有办法直接访问它。还有 AbstractHttpParams 不提供对所有条目的任何直接访问。

由于我不能依赖预定义的键名,理想的方法是遍历 HttpParams 封装的所有条目。或者至少得到一个键名列表。我错过了什么?

最佳答案

您的 HttpParams 用于在 HttpEntityEnclosedRequestBase 对象上创建 HttpEntity 集,然后您可以使用以下代码返回一个列表

final HttpPost httpPost = new HttpPost("http://...");

final ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("a_param", username));
params.add(new BasicNameValuePair("a_second_param", password));

//  add the parameters to the httpPost
HttpEntity entity;
try
{
    entity = new UrlEncodedFormEntity(params);
    httpPost.setEntity(entity);
}
catch (final UnsupportedEncodingException e)
{
    // this should never happen.
    throw new IllegalStateException(e);
}
HttpEntity httpEntity = httpPost.getEntity();

try
{
    List<NameValuePair> parameters = new ArrayList<NameValuePair>( URLEncodedUtils.parse(httpEntity) );
}
catch (IOException e)
{
}

关于java - 访问 HttpParams 的所有条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9379768/

相关文章:

java - 逆向3数组列表

java - 两个日历时间之间的差异。多一小时出结果

java - 为什么 HttpClient 不发送指定的 Accept-Language 字段?

java - 如何使用 Apache httpcomponents 从 NHttpRequestHandler 中得知远程 IP 地址?

java - 不支持的记录版本 SSLv2Hello 使用 CloseableHttpClient

java - Eclipse 项目的 PlantUML 图

java - 无法引用封闭范围中定义的非最终局部变量按钮,随机方法错误

java - 获取与 jPasswordField 中的输入等效的字符串

java - 如何在 Apache HttpComponents 中将 Content-Length header 添加到 HttpPost?

java - 当服务器使用服务器名称指示(SNI)扩展时,如何使用 HttpClient 4.5.2 和 JDK 1.8 获取 HTTPS 网页资源?