Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HttpClient setHeader和addHeader之间有什么区别?_Java_Apache Commons Httpclient - Fatal编程技术网

Java HttpClient setHeader和addHeader之间有什么区别?

Java HttpClient setHeader和addHeader之间有什么区别?,java,apache-commons-httpclient,Java,Apache Commons Httpclient,使用Apache HttpClient版本时: <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.6</version> </dependency> addHeader:向此邮件添加标题。标题将附加到列表的末尾 s

使用Apache HttpClient版本时:

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.6</version>
</dependency>

addHeader:向此邮件添加标题。标题将附加到列表的末尾

setHeader:用相同的名称覆盖第一个标题。如果找不到具有给定名称的标题,则新标题将追加到列表的末尾


设置头
如果头的名称相同,方法将覆盖头。但是
addHeader
方法没有。即使头的名称相同,它也会添加头。

以下是两个方法的签名信息:

**addHeader**
public void addHeader(String name,
                      String value)
Description copied from interface: HttpMessage
Adds a header to this message. The header will be appended to the end of the list.



**setHeader**
public void setHeader(String name,
                              String value)
Description copied from interface: HttpMessage
Overwrites the first header with the same name. The new header will be appended to the end of the list, if no header with the given name can be found.

从这些方法描述中,我们可以理解setHeader()将用给定的新标题信息替换现有标题数据,其中as addHeader()只需添加具有给定名称的标题。

正如您可以从文档中看到的:

向此邮件添加标题。标题将附加到列表的末尾

用相同的名称覆盖第一个标题。如果找不到具有给定名称的标题,则新标题将追加到列表的末尾


这里是指向的文档的链接
addHeader
可能会生成重复的头,而
setHeader
总是覆盖。
set
将替换头,
add
基本上会添加另一个头值
**addHeader**
public void addHeader(String name,
                      String value)
Description copied from interface: HttpMessage
Adds a header to this message. The header will be appended to the end of the list.



**setHeader**
public void setHeader(String name,
                              String value)
Description copied from interface: HttpMessage
Overwrites the first header with the same name. The new header will be appended to the end of the list, if no header with the given name can be found.