В чем разница между заголовками, добавленными HttpAddRequestHeaders, и заголовками, отправленными HttpSendRequest? - PullRequest
0 голосов
/ 25 апреля 2018

Я имею дело с WinInet, и я хочу знать, какова практическая разница между заголовками, которые устанавливаются функцией HttpAddRequestHeaders (используя дескриптор HttpOpenRequest), и теми, которые отправляются функцией HttpSendRequest.

Чтобы упростить мой код, есть одно лучшее место для определения таких заголовков? Я бы хотел избежать этих двух способов

1 Ответ

0 голосов
/ 25 апреля 2018

Согласно документации Microsoft:

  • Функция HttpSendRequest

    Функция также позволяет клиенту указывать необязательные данные для отправки HTTP-сервер, следующий сразу за заголовками запроса. Эта функция обычно используется для операций записи, таких как PUT и POST.

  • Функция HttpAddRequestHeaders

    • HTTP_ADDREQ_FLAG_ADD

      Добавляет заголовок, если он не существует. Используется с HTTP_ADDREQ_FLAG_REPLACE.

    • HTTP_ADDREQ_FLAG_ADD_IF_NEW

      Добавляет заголовок, только если он еще не существует; в противном случае возвращается ошибка.

    • HTTP_ADDREQ_FLAG_COALESCE

      Объединяет заголовки с тем же именем.

    • HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA

      Объединяет заголовки с тем же именем. Например, добавление «Accept: text / » с последующим «Accept: audio / » с этим флагом приводит к формированию единого заголовка «Accept: text / , audio / » , Это приводит к объединению первого найденного заголовка. Именно вызывающее приложение должно обеспечить согласованную схему в отношении объединенных / отдельных заголовков.

    • HTTP_ADDREQ_FLAG_COALESCE_WITH_SEMICOLON

      Объединяет заголовки с тем же именем, используя точку с запятой.

    • HTTP_ADDREQ_FLAG_REPLACE

      Заменяет или удаляет заголовок. Если значение заголовка пусто и заголовок найден, он удаляется. Если не пусто, значение заголовка заменяется.

Так что, если все, что вы хотите сделать, это «добавить заголовки запросов», то любой API предоставит вам ту же функциональность.

Если вы хотите сделать что-то особенное (например, «объединить заголовки»), вы можете выбрать один или другой API.

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...