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 終止字串的指標,其中包含要附加至要求的其他標頭。 如果沒有附加其他標頭,這個參數可以是 NULL

[in] dwHeadersLength

TCHAR 中其他標頭的大小。 如果此參數為 -1L 且 lpszHeaders 不是 NULL,則函式會假設 lpszHeaders 是以零終止 (ASCIIZ) ,並計算長度。 如需詳細資訊,請參閱。

[in] lpOptional

緩衝區的指標,其中包含要在要求標頭之後立即傳送的任何選擇性數據。 此參數通常用於 POST 和 PUT 作業。 選擇性數據可以是要張貼到伺服器的資源或資訊。 如果沒有選擇性數據要傳送,此參數可以是 NULL

[in] dwOptionalLength

選擇性數據的大小,以位元組為單位。 如果沒有選擇性數據要傳送,此參數可以是零。

傳回值

如果成功,則傳回 TRUE ,否則傳回 FALSE 。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

HttpSendRequest 會將指定的要求傳送至 HTTP 伺服器,並允許用戶端指定其他標頭以連同要求一起傳送。

此函式也可讓用戶端指定選擇性數據,以緊接在要求標頭之後傳送至 HTTP 伺服器。 這項功能通常用於「寫入」作業,例如 PUT 和 POST。

傳送要求之後,會讀取來自 HTTP 伺服器的狀態代碼和響應標頭。 這些標頭會在內部維護,並可透過 HttpQueryInfo 函式供用戶端應用程式使用。

應用程式可以在對 HttpSendRequest 的多個呼叫中使用相同的 HTTP 要求句柄,但應用程式必須在再次呼叫函式之前讀取前一個呼叫所傳回的所有數據。

在離線模式中,如果因特網快取中找不到資源, HttpSendRequest 會傳回 ERROR_FILE_NOT_FOUND

HttpSendRequest 有兩個版本:HTTPSendRequestA (搭配 ANSI 組建使用) 和 HttpSendRequestW (與 Unicode 組建搭配使用) 。 如果 dwHeadersLength 是 -1L 且 lpszHeaders 不是 NULL,就會發生下列情況:如果呼叫 HttpSendRequestA ,則函式會假設 lpszHeaders 是零終止的 (ASCIIZ) ,而且會計算長度。 如果呼叫 HttpSendRequestW ,函式會失敗 並ERROR_INVALID_PARAMETER

注意HttpSendRequestA 函式會將標頭表示為 ISO-8859-1 字元,而不是 ANSI 字元。 HttpSendRequestW 函式會將標頭表示為轉換成 UTF-16LE 字元的 ISO-8859-1 字元。 因此,當要加入的標頭可以包含非 ASCII 字元時,使用 HttpSendRequestW 函式就永遠不會安全。 相反地,應用程式可以使用 MultiByteToWideCharWideCharToMultiByte 函式,並將 Codepage 參數設定為 28591,以在 ANSI 字元與 UTF-16LE 字元之間對應。
 
就像 WinINet API 的其他所有層面一樣,無法在 DllMain 或全域物件的建構函式和解構函式內安全地呼叫此函式。
注意 WinINet 不支援伺服器實作。 此外,它不應該從服務使用。 對於伺服器實作或服務,請使用 Microsoft Windows HTTP 服務 (WinHTTP)
 

注意

wininet.h 標頭會將 HttpSendRequest 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 wininet.h
程式庫 Wininet.lib
Dll Wininet.dll

另請參閱

HTTP 會話

WinINet 函式