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。
注意
wininet.h 標頭會將 HttpSendRequest 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | wininet.h |
程式庫 | Wininet.lib |
Dll | Wininet.dll |