Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mengambil informasi header yang terkait dengan permintaan HTTP; menawarkan cara untuk mengambil nama header dan string nilai yang diurai.
Sintaks
WINHTTPAPI DWORD WinHttpQueryHeadersEx(
HINTERNET hRequest,
DWORD dwInfoLevel,
ULONGLONG ullFlags,
UINT uiCodePage,
PDWORD pdwIndex,
PWINHTTP_HEADER_NAME pHeaderName,
PVOID pBuffer,
PDWORD pdwBufferLength,
PWINHTTP_EXTENDED_HEADER *ppHeaders,
PDWORD pdwHeadersCount
);
Parameter
hRequest
Ketik: _In_ HINTERNET
Handel permintaan dikembalikan oleh WinHttpOpenRequest. Panggilan WinHttpReceiveResponse untuk handel ini harus telah selesai sebelum memanggil WinHttpQueryHeadersEx. Jika Anda mengkueri trailer, maka panggilan WinHttpReadData untuk handel ini harus mengembalikan 0 byte yang dibaca sebelum memanggil WinHttpQueryHeadersEx.
dwInfoLevel
Ketik: _In_ DWORD
Nilai tipe DWORD yang menentukan kombinasi bendera atribut dan pengubah yang tercantum dalam topik Bendera info kueri . Atribut dan bendera pengubah ini menunjukkan informasi yang diminta, dan cara memformatnya.
Catatan
Bendera berikut mengembalikan ERROR_INVALID_PARAMETER jika digunakan: WINHTTP_QUERY_VERSION, WINHTTP_QUERY_STATUS_CODE, WINHTTP_QUERY_STATUS_TEXT, WINHTTP_QUERY_FLAG_NUMBER, WINHTTP_QUERY_FLAG_NUMBER64, WINHTTP_QUERY_FLAG_SYSTEMTIME, dan WINHTTP_QUERY_RAW_HEADERS_CRLF.
Bendera WINHTTP_QUERY_EX_ALL_HEADERS mengembalikan semua header.
Jika Anda tidak mengkueri semua header, maka Anda dapat meneruskan bendera yang sesuai dengan header tertentu yang diketahui, atau Anda dapat meneruskan WINHTTP_QUERY_CUSTOM bersama dengan string untuk nama header di parameter pHeaderName .
Meneruskan WINHTTP_QUERY_FLAG_WIRE_ENCODING mengembalikan header dalam format di mana header dikirim melalui kabel (Anda harus mengakses/mengatur anggota psz*dari WINHTTP_EXTENDED_HEADER dan WINHTTP_HEADER_NAME). Jika Anda tidak mengatur bendera pengodean kawat, perilaku defaultnya adalah mengembalikan header dalam format Unicode (Anda harus mengakses/mengatur anggota pwsz* dari WINHTTP_EXTENDED_HEADER dan WINHTTP_HEADER_NAME).
ullFlags
Jenis: _In_ ULONGLONG
Dicadangkan. Atur ke 0.
uiCodePage
Ketik: _In_ UINT
Halaman kode yang digunakan untuk konversi Unicode. Anda harus meneruskan 0 untuk perilaku default (CP_ACP), atau saat menggunakan WINHTTP_QUERY_FLAG_WIRE_ENCODING. Tidak ada validasi yang dilakukan untuk parameter ini.
pdwIndex
Jenis: _Inout_opt_ PDWORD
Alamat indeks berbasis nol yang digunakan untuk menghitung beberapa header dengan nama yang sama. Saat memanggil fungsi, parameter ini adalah indeks header yang ditentukan untuk dikembalikan. Ketika fungsi kembali, parameter ini adalah indeks header berikutnya. Teruskan NULL untuk mengakses instans pertama header tertentu.
pHeaderName
Jenis: PWINHTTP_HEADER_NAME _Inout_opt_
Alamat struktur WINHTTP_HEADER_NAME .
Atur pHeaderName ke NULL saat mengambil semua header. Jika parameter ini bukan NULL, dan Anda meneruskan WINHTTP_QUERY_CUSTOM dengan dwInfoLevel, maka WinHttpQueryHeadersEx hanya akan mengambil header yang ditentukan oleh parameter ini. Jika Anda meneruskan WINHTTP_QUERY_FLAG_WIRE_ENCODING dengan dwInfoLevel, maka Anda harus menggunakan anggota pszName (jika bendera tidak diatur, maka gunakan anggota pwszName ).
pBuffer
Jenis: _Out_writes_bytes_to_opt_(*pdwBufferLength, *pdwBufferLength) LPVOID
Buffer yang disediakan penelepon untuk menyimpan penunjuk header dan header yang diurai. Jika parameter ini NULL atau terlalu kecil, maka WinHttpQueryHeadersEx mengembalikan ERROR_INSUFFICIENT_BUFFER, dan parameter pdwBufferLength berisi ukuran buffer yang diperlukan dalam byte.
pdwBufferLength
Jenis: _Inout_ PDWORD
Panjang buffer yang disediakan pemanggil. Jika pBufferNULL atau terlalu kecil, maka WinHttpQueryHeadersEx menulis ukuran buffer yang diperlukan dalam byte ke parameter ini.
ppHeaders
Jenis: PWINHTTP_EXTENDED_HEADER _Out_writes_opt_(*pdwHeadersCount)*
Handel ke array WINHTTP_EXTENDED_HEADER untuk mengakses nama/nilai header yang diurai. Anda harus meneruskan alamat penunjuk WINHTTP_EXTENDED_HEADER yang diinisialisasi ke NULL. Setelah selesai, Anda harus mengakses parameter pszName/pszValue jika menggunakan WINHTTP_QUERY_FLAG_WIRE_ENCODING, dan pwszName/pwszValue sebaliknya.
pdwHeadersCount
Jenis: _Out_ PDWORD
Jumlah header yang dikembalikan. Anda tidak boleh mencoba mengakses di luar ppHeaders[cHeaders - 1], karena itu di luar batas array.
Nilai kembali
Kode status yang menunjukkan hasil operasi. Di antara kode kesalahan yang dikembalikan adalah sebagai berikut.
| Kode Kesalahan | Deskripsi |
|---|---|
|
Header yang diminta tidak dapat ditemukan. |
|
Operasi yang diminta tidak dapat dilakukan karena handel yang diberikan tidak dalam keadaan yang benar. |
|
Jenis handel yang disediakan salah untuk operasi ini. |
|
Terjadi kesalah internal. |
|
Memori tidak cukup tersedia untuk menyelesaikan operasi yang diminta. (Kode galat Windows) |
Keterangan
WinHttpQueryHeadersEx dibangun berdasarkan fungsionalitas WinHttpQueryHeaders. WinHttpQueryHeaders memungkinkan Anda mengkueri header permintaan atau respons (atau ekor respons) dalam bentuk string, angka (DWORD), atau tanda waktu (SYSTEMTIME). Mengkueri untuk semua header mengembalikan satu string berseri dengan karakter CRLF atau NULL yang memisahkan header yang berbeda. Misalnya, "Name1: value1\r\nName2: value2\r\n\r\n". Atau "Name1: value1\0Name2: value2\0\0". Pemisah ganda digunakan untuk menunjukkan akhir string.
WinHttpQueryHeadersEx memberi Anda cara untuk mengambil nama header dan string nilai yang diurai.
Persyaratan
| Persyaratan | Nilai |
|---|---|
| Klien minimum yang didukung | Windows 10 Build 20348 |
| Server minimum yang didukung | Windows 10 Build 20348 |
| Target Platform | Windows |
| Header | winhttp.h |
| Pustaka | Winhttp.lib |
| DLL | Winhttp.dll |