java为什么getHeaderField()返回一个字符串,其中getHeaderFields()返回HttpUrlConnection中的Map<String,List<String>>
我在我的安卓代码中使用了HttpUrlConnection,我试图在getResponseCode()调用后访问标题字段。对于单个标头,方法为-
public String getHeaderField(String name)
在哪里可以得到所有的标题呢-
public Map<String,List<String>> getHeaderFields()
那么这里的交易是什么?我们可以多次设置标题吗
getHeaderField()方法的文档说明:
If called on a connection that sets the same header multiple times with possibly different values, only the last value is returned.
那么getHeaderFields()方法是什么呢?如果有人能举个例子来帮助理解这种差异,我将不胜感激
与HttpResponse相比,该方法-
Header[] getHeaders(String var1);
我早就料到了-
public List<String> getHeaderField(String name)
但事实似乎并非如此。那我该怎么处理呢
# 1 楼答案
标题(不确定是否所有标题)可以有多个值,我不知道为什么API是这样设计的(
getHeaderField()
返回由;
分隔的值,而getHeaderFields()
返回一个值列表,在我看来,这是一个不一致的设计选择)好的,要获取某个头的值列表:
getHeaderFields()
方法返回一个映射,因此如果您已经知道头名称,您不需要迭代,只需执行getHeaderFields().get("headername")
即可获取该头的值列表