为什么getHeaderField()返回一个String,其中getHeaderFields()返回Map <string,list <string>&gt;在HttpUrlConnection中

时间:2017-04-06 14:00:26

标签: java android httpclient httpurlconnection

我在我的android代码中使用HttpUrlConnection,我试图在getResponseCode()调用后访问头字段。对于单个标头方法是 -

public String getHeaderField(String name)

在哪里获取所有标题 -

public Map<String,List<String>> getHeaderFields()

那么这笔交易是什么?我们是否允许多次设置标题?

getHeaderField()方法的文档说 -

  

如果在一个连接上调用多次设置相同的标头且可能有不同的值,则只返回最后一个值。

那么getHeaderFields()方法怎么样?如果有人能举一个例子来帮助理解差异,我将不胜感激。

与具有方法的HttpResponse相比 -

Header[] getHeaders(String var1);

我希望方法 -

public List<String> getHeaderField(String name)

但似乎并非如此。那我该怎么处理呢?

1 个答案:

答案 0 :(得分:0)

标题(不确定是否所有标题)都可以包含多个值,而且我不知道为什么API是这样设计的(getHeaderField()会返回;分隔的值{ {1}}返回一个值列表,在我看来这是一个不一致的设计选择。

好吧,要获取某些标头的值列表:getHeaderFields()方法返回一个地图,因此如果您已经知道标题名称,则不需要进行迭代,只需执行{{1}获取该标题的值列表。