Поделиться через


Функция HttpSendRequestA (wininet.h)

Отправляет указанный запрос на HTTP-сервер, позволяя вызывающим пользователям отправлять дополнительные данные за пределы обычно передаваемых HttpSendRequestEx.

Синтаксис

BOOL HttpSendRequestA(
  [in] HINTERNET hRequest,
  [in] LPCSTR    lpszHeaders,
  [in] DWORD     dwHeadersLength,
  [in] LPVOID    lpOptional,
  [in] DWORD     dwOptionalLength
);

Параметры

[in] hRequest

Дескриптор, возвращаемый вызовом функции HttpOpenRequest.

[in] lpszHeaders

Указатель на строку null-terminated, содержащую дополнительные заголовки, добавляемые к запросу. Этот параметр может быть значение NULL, если добавить дополнительные заголовки отсутствуют.

[in] dwHeadersLength

Размер дополнительных заголовков в TCHARs. Если этот параметр -1L и lpszHeaders не NULL, функция предполагает, что lpszHeaders равно нулевому завершению (ASCIIZ), а длина вычисляется. Дополнительные сведения см. в примечаниях.

[in] lpOptional

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

[in] dwOptionalLength

Размер необязательных данных в байтах. Этот параметр может быть равен нулю, если для отправки необязательных данных нет.

Возвращаемое значение

Возвращает TRUE, если выполнено успешно или FALSE в противном случае. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.

Замечания

HttpSendRequest отправляет указанный запрос на HTTP-сервер и позволяет клиенту указывать дополнительные заголовки для отправки вместе с запросом.

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

После отправки запроса считываются код состояния и заголовки ответа с HTTP-сервера. Эти заголовки сохраняются внутренне и доступны клиентским приложениям через функцию HttpQueryInfo.

Приложение может использовать один и тот же дескриптор HTTP-запроса в нескольких вызовах для HttpSendRequest, но приложение должно считывать все данные, возвращенные из предыдущего вызова, прежде чем снова вызывать функцию.

В автономном режиме HttpSendRequest возвращает ERROR_FILE_NOT_FOUND, если ресурс не найден в кэше Интернета.

Существует две версии HttpSendRequestHttpSendRequestA (используется со сборками ANSI) и HttpSendRequestW (используется с сборками Юникода). Если dwHeadersLength -1L и lpszHeaders не NULL, то произойдет следующее: если вызывается HttpSendRequestA, функция предполагает, что lpszHeaders равно нулевому завершению (ASCIIZ), а длина вычисляется. Если вызывается httpSendRequestW, функция завершается ошибкой с ERROR_INVALID_PARAMETER.

ПримечаниеФункция HttpSendRequestA представляет заголовки как символы ISO-8859-1, а не символы ANSI. Функция HttpSendRequestW представляет заголовки как символы ISO-8859-1, преобразованные в символы UTF-16LE. В результате никогда не безопасно использовать функцию HttpSendRequestW при добавлении заголовков может содержать символы, отличные от ASCII. Вместо этого приложение может использовать функции MultiByteToWideChar и Функции WideCharToMultiBy te с параметром Codepage , равным 28591, для сопоставления между символами ANSI и символами UTF-16LE.
 
Как и все остальные аспекты API WinINet, эта функция не может быть безопасно вызвана из dllMain или конструкторов и деструкторов глобальных объектов.
Примечание WinINet не поддерживает реализации сервера. Кроме того, его не следует использовать из службы. Для реализации или служб сервера microsoft Windows HTTP Services (WinHTTP).
 

Заметка

Заголовок wininet.h определяет HttpSendRequest как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка wininet.h
библиотеки Wininet.lib
DLL Wininet.dll

См. также

сеансы HTTP

функций WinINet