HttpClient В чем разница между setHeader и addHeader? - PullRequest
0 голосов
/ 30 октября 2018

При использовании версии Apache HttpClient:

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

В чем разница между 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

Ответы [ 4 ]

0 голосов
/ 30 октября 2018

Как видно из документации:

addHeader(String name, String value

Добавляет заголовок к этому сообщению. Заголовок будет добавлен в конец списка.

setHeader(String name, String value

Перезаписывает первый заголовок с тем же именем. Новый заголовок будет добавлен в конец списка, если заголовок с указанным именем не найден.

0 голосов
/ 30 октября 2018

setHeader метод перезаписывает заголовки, если имена заголовков совпадают. Но addHeader метод не. Добавляет заголовки, даже если заголовки совпадают.

0 голосов
/ 30 октября 2018

Вот информация о подписи обоих методов:

**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 () заменит существующие данные заголовка новыми данными заголовка, а addHeader () просто добавляет заголовок с заданным именем.

0 голосов
/ 30 октября 2018

addHeader : Добавляет заголовок к этому сообщению. Заголовок будет добавлен в конец списка.

setHeader : перезаписывает первый заголовок с тем же именем. Новый заголовок будет добавлен в конец списка, если заголовок с указанным именем не найден.

С Javadoc

...