有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

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

    好的,要获取某个头的值列表:getHeaderFields()方法返回一个映射,因此如果您已经知道头名称,您不需要迭代,只需执行getHeaderFields().get("headername")即可获取该头的值列表