HttpClient setHeader 和 addHeader 有什么区别?

use*_*026 3 java apache-commons-httpclient

使用 Apache HttpClient 版本时:

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.6</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

setHeader 和 addHeader 有什么区别?

    httpPost.addHeader("AuthenticationKey",authenticationKey);
    httpPost.addHeader("Content-Type","application/json");

    httpPost.setHeader("Cache-Control", "no-cache"); // HTTP 1.1
    httpPost.setHeader("Pragma", "no-cache"); // HTTP 1.0
    httpPost.setHeader("X-Requested-With", "XMLHttpRequest"); // mimics a browser REST request
Run Code Online (Sandbox Code Playgroud)

Wil*_*Owl 11

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

addHeader(String name, String value

向此消息添加标题。标题将附加到列表的末尾。

setHeader(String name, String value

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


小智 5

setHeader如果标头名称相同,方法将覆盖标头。但 addHeader方法不行。即使标题名称相同,它也会添加标题。