Bendera opsi
Bendera opsi berikut didukung oleh WinHttpQueryOption dan WinHttpSetOption.
WINHTTP_OPTION_ASSURED_NON_BLOCKING_CALLBACKS
Defaultnya adalah FALSE. Jika diatur ke TRUE, WinHTTP tidak menjamin kemajuan jika panggilan balik status diblokir oleh aplikasi klien.
Aplikasi klien harus berhati-hati untuk melakukan operasi minimal dalam panggilan balik tanpa memblokir, kembali secepat mungkin, dan khususnya tidak boleh menunggu panggilan WinHTTP berikutnya. Jika tidak mengikuti panduan ini, kemungkinan akan ada dampak performa negatif atau potensi aplikasi macet. Jika digunakan dengan cara yang ditentukan, opsi ini dapat meningkatkan performa.
WINHTTP_OPTION_AUTOLOGON_POLICY
Mengatur nilai bilangan bulat panjang yang tidak ditandatangani yang menentukan Kebijakan Masuk Otomatis dengan salah satu nilai berikut.
Istilah | Deskripsi |
---|---|
WINHTTP_AUTOLOGON_SECURITY_LEVEL_HIGH | Kredensial default tidak digunakan. Perhatikan bahwa bendera ini hanya berlaku jika Anda menentukan server dengan nama komputer yang sebenarnya. Ini tidak akan berlaku, jika Anda menentukan server dengan "localhost" atau alamat IP. |
WINHTTP_AUTOLOGON_SECURITY_LEVEL_LOW | Log masuk terautentikasi menggunakan kredensial default dilakukan untuk semua permintaan. |
WINHTTP_AUTOLOGON_SECURITY_LEVEL_MEDIUM | Log masuk yang diautentikasi menggunakan kredensial default hanya dilakukan untuk permintaan di Intranet lokal. |
WINHTTP_OPTION_BACKGROUND_CONNECTIONS
Ketika Anda mengatur opsi ini pada handel sesi, Anda harus meneruskan jumlah koneksi yang ingin Anda buka. Kemudian, setelah pertama kali mengirim permintaan, daripada hanya membuka satu koneksi, WinHttp membuka sejumlah koneksi secara paralel. Ini dapat meningkatkan performa permintaan berikutnya ke tujuan yang sama, yang tidak akan memiliki overhead pembentukan koneksi.
WINHTTP_OPTION_CALLBACK
Mengambil penunjuk ke fungsi panggilan balik yang diatur dengan WinHttpSetStatusCallback.
WINHTTP_OPTION_CLIENT_CERT_CONTEXT
Mengatur konteks sertifikat klien. Jika aplikasi menerima ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED, aplikasi harus memanggil WinHttpSetOption untuk menyediakan sertifikat sebelum mencoba kembali permintaan. Sebagai bagian dari pemrosesan opsi ini, WinHttp memanggil CertDuplicateCertificateContext pada konteks sertifikat yang disediakan pemanggil sehingga konteks sertifikat dapat dirilis secara independen oleh pemanggil.
Catatan
Aplikasi tidak boleh mencoba menutup penyimpanan sertifikat dengan bendera CERT_CLOSE_STORE_FORCE_FLAG dalam panggilan ke CertCloseStore pada penyimpanan sertifikat tempat konteks sertifikat diambil. Pelanggaran akses dapat terjadi.
Saat server meminta sertifikat klien, WinHttpSendRequest, atau WinHttpReceiveResponse mengembalikan kesalahan ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED . Jika server meminta sertifikat tetapi tidak memerlukannya, aplikasi dapat menentukan opsi ini untuk menunjukkan bahwa server tidak memiliki sertifikat. Server dapat memilih skema autentikasi lain atau mengizinkan akses anonim ke server. Aplikasi ini menyediakan makro WINHTTP_NO_CLIENT_CERT_CONTEXT dalam parameter lpBuffer dari WinHttpSetOption seperti yang diperlihatkan dalam contoh kode berikut.
BOOL fRet = WinHttpSetOption(hRequest,
WINHTTP_OPTION_CLIENT_CERT_CONTEXT,
WINHTTP_NO_CLIENT_CERT_CONTEXT,
0);
Jika server memerlukan sertifikat klien, server dapat mengirim kode status HTTP 403 sebagai respons. Untuk informasi selengkapnya, lihat opsi WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST .
WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST
Mengambil struktur SecPkgContext_IssuerListInfoEx saat kesalahan dari WinHttpSendRequest atau WinHttpReceiveResponseERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED. Daftar pengeluar sertifikat dalam struktur berisi daftar Otoritas Sertifikat (CA) yang dapat diterima dari server. Aplikasi klien dapat memfilter daftar CA untuk mengambil sertifikat klien untuk autentikasi SSL.
Sebagai alternatif, jika server meminta sertifikat klien, tetapi tidak memerlukannya, aplikasi bisa memanggil WinHttpSetOption dengan opsi WINHTTP_OPTION_CLIENT_CERT_CONTEXT . Untuk informasi selengkapnya, lihat opsi WINHTTP_OPTION_CLIENT_CERT_CONTEXT .
WINHTTP_OPTION_CODEPAGE
Mengatur halaman kode yang digunakan untuk memproses URL (yaitu, string kueri). Defaultnya adalah UTF8.
WINHTTP_OPTION_CONFIGURE_PASSPORT_AUTH
Mengatur nilai bilangan bulat panjang yang tidak ditandatangani yang menentukan apakah Autentikasi Paspor dalam autentikasi WinHTTP diaktifkan. Nilainya bisa menjadi salah satu dari yang berikut ini:
Istilah | Deskripsi |
---|---|
WINHTTP_DISABLE_PASSPORT_AUTH | Autentikasi Microsoft Passport dinonaktifkan. Ini adalah default. |
WINHTTP_DISABLE_PASSPORT_KEYRING | Keyring Paspor dinonaktifkan. Ini adalah default. |
WINHTTP_ENABLE_PASSPORT_AUTH | Autentikasi paspor diaktifkan. |
WINHTTP_ENABLE_PASSPORT_KEYRING | Keyring Paspor diaktifkan. |
WINHTTP_OPTION_CONNECT_RETRIES
Mengatur atau mengambil nilai bilangan bulat panjang yang tidak ditandatangani yang berisi berapa kaliWinHTTP mencoba menyambungkan ke host. Microsoft Windows HTTP Services (WinHTTP) hanya mencoba sekali per alamat Protokol Internet (IP). Misalnya, jika Anda mencoba menyambungkan ke host multihomed yang memiliki 10 alamat IP dan WINHTTP_OPTION_CONNECT_RETRIES diatur ke 7, maka WinHTTP hanya mencoba menyambungkan ke tujuh alamat IP pertama. Mengingat set yang sama dengan 10 alamat IP, jika WINHTTP_OPTION_CONNECT_RETRIES diatur ke 20, WinHTTP mencoba masing-masing dari 10 hanya sekali. Jika upaya koneksi masih gagal setelah jumlah upaya yang ditentukan, atau jika batas waktu koneksi kedaluwarsa sebelum itu, permintaan dibatalkan. Nilai default untuk WINHTTP_OPTION_CONNECT_RETRIES adalah lima upaya.
WINHTTP_OPTION_CONNECT_TIMEOUT
Mengatur atau mengambil nilai bilangan bulat panjang yang tidak ditandatangani yang berisi nilai waktu habis, dalam milidetik. Mengatur opsi ini ke tak terbatas (0xFFFFFFFF) akan menonaktifkan timer ini.
Jika permintaan koneksi TCP membutuhkan waktu lebih lama dari nilai batas waktu ini, permintaan dibatalkan. Batas waktu default adalah 60 detik. Ketika Anda mencoba menyambungkan ke beberapa alamat IP untuk satu host (host multihomed), batas waktu habis adalah untuk setiap koneksi individual.
WINHTTP_OPTION_CONNECTION_INFO
Mengambil alamat IP sumber dan tujuan, dan port permintaan yang menghasilkan respons saat WinHttpReceiveResponse kembali. Aplikasi ini memanggil WinHttpQueryOption dengan opsi WINHTTP_OPTION_CONNECTION_INFO , dan menyediakan struktur WINHTTP_CONNECTION_INFO dalam parameter lpBuffer . Untuk informasi selengkapnya, lihat WINHTTP_CONNECTION_INFO.
Berlaku untuk: Windows XP dengan SP2 dan yang lebih baru; Windows 2003 dengan SP1 dan yang lebih baru.
WINHTTP_OPTION_CONNECTION_GUID
Tandai koneksi yang terkait dengan handel permintaan WinHTTP dengan GUID. Ini memungkinkan kontrol kustom atas permintaan mana yang menggunakan grup koneksi mana dengan opsi WINHTTP_OPTION_MATCH_CONNECTION_GUID .
WINHTTP_OPTION_CONNECTION_STATS_V0
Retreives struct TCP_INFO_v0 untuk koneksi yang mendasar yang digunakan oleh permintaan. Struktur yang dikembalikan mungkin berisi statistik dari permintaan sebelumnya yang dikirim melalui koneksi yang sama.
Catatan
Opsi ini telah digantikan oleh WINHTTP_OPTION_CONNECTION_STATS_V1.
WINHTTP_OPTION_CONNECTION_STATS_V1
Retreives struct TCP_INFO_v1 untuk koneksi yang mendasar yang digunakan oleh permintaan. Struktur yang dikembalikan mungkin berisi statistik dari permintaan sebelumnya yang dikirim melalui koneksi yang sama.
WINHTTP_OPTION_CONTEXT_VALUE
Mengatur atau mengambil DWORD_PTR yang berisi penunjuk ke nilai konteks yang terkait dengan handel HINTERNET ini. Nilai yang disimpan dalam buffer digunakan dan bendera opsi WINHTTP_OPTION_CONTEXT_VALUE diberi nilai baru.
WINHTTP_OPTION_DECOMPRESSION
Mengatur DWORD bendera yang menentukan apakah WinHTTP akan secara otomatis mendekompresi isi respons dengan Pengodean Konten terkompresi. WinHTTP juga akan mengatur header Accept-Encoding yang sesuai, mengesampingkan apa pun yang disediakan oleh pemanggil. Nilai yang didukung adalah:
Istilah | Deskripsi |
---|---|
WINHTTP_DECOMPRESSION_FLAG_GZIP | Dekompresi Content-Encoding: respons gzip. |
WINHTTP_DECOMPRESSION_FLAG_DEFLATE | Dekompresi Pengodean Konten: deflate respons. |
WINHTTP_DECOMPRESSION_FLAG_ALL | Dekompresi respons dengan Pengodean Konten yang didukung. |
Secara default, WinHTTP akan memberikan respons terkompresi kepada pemanggil yang tidak dimodifikasi.
WINHTTP_OPTION_DISABLE_CERT_CHAIN_BUILDING
Mengatur opsi ini pada handel sesi WinHttp memungkinkan Anda mengaktifkan/menonaktifkan apakah rantai sertifikat server dibuat.
WINHTTP_OPTION_DISABLE_FEATURE
Mengatur nilai bilangan bulat panjang yang tidak ditandatangani yang menentukan fitur mana yang dinonaktifkan dengan satu atau beberapa bendera berikut. Ketahuilah bahwa fitur ini hanya boleh diteruskan ke WinHttpSetOption pada handel permintaan setelah handel permintaan dibuat dengan WinHttpOpenRequest, dan sebelum permintaan dikirim dengan WinHttpSendRequest.
Istilah | Deskripsi |
---|---|
WINHTTP_DISABLE_AUTHENTICATION | Autentikasi otomatis dinonaktifkan. |
WINHTTP_DISABLE_COOKIES | Penambahan header cookie otomatis ke permintaan dinonaktifkan. Selain itu, cookie yang dikembalikan tidak secara otomatis ditambahkan ke database cookie. Menonaktifkan cookie dapat mengakibatkan performa yang buruk untuk autentikasi Paspor. |
WINHTTP_DISABLE_KEEP_ALIVE | Menonaktifkan semantik tetap hidup untuk koneksi. Semantik tetap aktif diperlukan untuk MSN, NTLM, dan jenis autentikasi lainnya. |
WINHTTP_DISABLE_REDIRECTS | Pengalihan otomatis dinonaktifkan saat mengirim permintaan dengan WinHttpSendRequest. Jika pengalihan otomatis dinonaktifkan, aplikasi harus mendaftarkan fungsi panggilan balik agar autentikasi Paspor berhasil. |
WINHTTP_OPTION_DISABLE_GLOBAL_POOLING
Menonaktifkan kumpulan lintas sesi global. Ini direkomendasikan karena pengumpulan lintas sesi global adalah perilaku warisan yang didukung secara default karena alasan kompatibilitas. Hal ini dipengaruhi oleh pengaturan koneksi maks nanti secara manual.
WINHTTP_OPTION_DISABLE_PROXY_AUTH_SCHEMES
Menonaktifkan satu atau beberapa praktik autentikasi proksi berikut pada sesi WinHTTP dengan menyediakan OR
semua pilihan yang berlaku. Ini semua adalah skema, kecuali untuk WINHTTP_PROXY_DISABLE_AUTH_LOCAL_SERVICE, yang memaksa penggunaan akun komputer lokal saat mengirim permintaan ke alamat loopback atau lokal. Itu mencegah kebocoran kredensial sistem ke proksi HTTP lokal.
Istilah | Deskripsi |
---|---|
WINHTTP_PROXY_DISABLE_SCHEME_BASIC | Menonaktifkan skema autentikasi Dasar. |
WINHTTP_PROXY_DISABLE_SCHEME_DIGEST | Menonaktifkan skema autentikasi Hash. |
WINHTTP_PROXY_DISABLE_SCHEME_NTLM | Menonaktifkan skema autentikasi NTLM. |
WINHTTP_PROXY_DISABLE_SCHEME_KERBEROS | Menonaktifkan skema autentikasi Kerberos. |
WINHTTP_PROXY_DISABLE_SCHEME_NEGOTIATE | Menonaktifkan skema Autentikasi negosiasi. |
WINHTTP_PROXY_DISABLE_AUTH_LOCAL_SERVICE | Memaksa penggunaan akun komputer lokal saat mengirim permintaan ke loopback atau alamat lokal. |
WINHTTP_OPTION_DISABLE_SECURE_PROTOCOL_FALLBACK
Mencegah WinHTTP mencoba kembali koneksi dengan versi protokol keamanan yang lebih rendah saat negosiasi protokol awal gagal.
WINHTTP_OPTION_DISABLE_STREAM_QUEUE
Memungkinkan permintaan baru untuk membuka koneksi HTTP/2 tambahan ketika batas aliran bersamaan maksimum tercapai, daripada menunggu aliran berikutnya yang tersedia pada koneksi yang ada.
WINHTTP_OPTION_ENABLE_FEATURE
Mengatur nilai bilangan bulat panjang yang tidak ditandatangani yang menentukan fitur yang saat ini diaktifkan. Bisa menjadi salah satu nilai berikut.
Istilah | Deskripsi |
---|---|
WINHTTP_ENABLE_SSL_REVERT_IMPERSONATION | Jika diaktifkan, WinHTTP untuk sementara mengembalikan peniruan klien selama durasi operasi autentikasi sertifikat SSL. Nilai ini hanya dapat diatur pada handel sesi. |
WINHTTP_ENABLE_SSL_REVOCATION | Jika diaktifkan, WinHTTP mengizinkan pencabutan SSL. Nilai ini hanya dapat diatur pada handel permintaan. |
WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL
Mengatur bitmask DWORD dari versi HTTP tingkat lanjut yang dapat diterima. Potensi nilai:
Istilah | Deskripsi |
---|---|
WINHTTP_PROTOCOL_FLAG_HTTP2 (0x1) | Mengaktifkan HTTP/2 untuk permintaan tersebut. |
WINHTTP_PROTOCOL_FLAG_HTTP3 (0x2) | Mengaktifkan HTTP/3 untuk permintaan tersebut. |
Tidak ada (0x0) | Membatasi permintaan ke HTTP/1.1 dan sebelumnya. |
Versi lama HTTP (1.1 dan sebelumnya) tidak dapat dinonaktifkan menggunakan opsi ini. Defaultnya adalah 0x0.
WINHTTP_OPTION_ENABLE_HTTP2_PLUS_CLIENT_CERT
Opsi ini dapat diatur pada handel sesi WinHttp untuk memungkinkan WinHttp menggunakan konteks sertifikat klien yang disediakan pemanggil saat HTTP/2 sedang digunakan.
WINHTTP_OPTION_ENABLETRACING
Mengatur nilai BOOL yang menentukan apakah pelacakan saat ini diaktifkan. Opsi ini hanya dapat diatur pada handel NULLHINTERNET . Lihat juga Mengumpulkan jejak WinHTTP.
WINHTTP_OPTION_ENCODE_EXTRA
Mengaktifkan pengodean persen URL untuk string jalur dan kueri.
Atau, Anda dapat mengodekan persen sebelum memanggil WinHttp.
WINHTTP_OPTION_EXPIRE_CONNECTION
Opsi ini hanya dapat diatur pada handel permintaan yang masih aktif (mengirim atau menerima). Mengatur opsi ini akan memberi tahu WinHttp untuk berhenti melayani permintaan pada koneksi yang terkait dengan handel permintaan yang diteruskan. Koneksi akan ditutup setelah permintaan menangani opsi ini dipanggil dengan selesai. Opsi ini tidak mengambil parameter apa pun.
WINHTTP_OPTION_EXTENDED_ERROR
Mengambil nilai bilangan bulat panjang yang tidak ditandatangani yang berisi kode kesalahan Microsoft Windows Sockets yang dipetakan ke pesan kesalahan ERROR_WINHTTP_* yang terakhir dikembalikan dalam konteks utas ini. Anda dapat meneruskan NULL sebagai nilai handel.
WINHTTP_OPTION_FEATURE_SUPPORTED
Periksa untuk melihat apakah bendera opsi yang disediakan didukung oleh versi WinHTTP ini.
WINHTTP_OPTION_FIRST_AVAILABLE_CONNECTION
Secara default, ketika WinHttp mengirim permintaan, jika tidak ada koneksi yang tersedia untuk melayani permintaan, WinHttp akan mencoba membuat koneksi baru, dan permintaan akan terikat ke koneksi baru ini. Ketika Anda mengatur opsi ini, permintaan seperti itu akan dilayani pada koneksi pertama yang tersedia, dan belum tentu yang dibuat.
WINHTTP_OPTION_GLOBAL_PROXY_CREDS
Mengambil penunjuk ke struktur WINHTTP_CREDS_EX dengan parameter fungsi hInternet diatur ke NULL. Opsi ini memerlukan kunci registri HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings! ShareCredsWithWinHttp. Jika kunci registri ini tidak diatur WinHTTP akan mengembalikan kesalahan ERROR_WINHTTP_INVALID_OPTION. Kunci registri ini tidak ada secara default. Ketika diatur, WinINet akan mengirim kredensial ke WinHTTP. Setiap kali WinHttp mendapatkan tantangan autentikasi dan jika tidak ada kredensial yang diatur pada handel saat ini, WinHttp akan menggunakan kredensial yang disediakan oleh WinINet. Untuk berbagi kredensial server selain kredensial proksi, pengguna perlu mengatur WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS .
WINHTTP_OPTION_GLOBAL_SERVER_CREDS
Mengambil penunjuk ke struktur WINHTTP_CREDS_EX dengan parameter fungsi hInternet diatur ke NULL. Opsi ini memerlukan kunci registri HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings! ShareCredsWithWinHttp. Jika kunci registri ini tidak diatur WinHTTP akan mengembalikan kesalahan ERROR_WINHTTP_INVALID_OPTION. Kunci registri ini tidak ada secara default. Ketika diatur, WinINet akan mengirim kredensial ke WinHTTP. Setiap kali WinHttp mendapatkan tantangan autentikasi dan jika tidak ada kredensial yang diatur pada handel saat ini, WinHttp akan menggunakan kredensial yang disediakan oleh WinINet. Untuk berbagi kredensial server selain kredensial proksi, pengguna perlu mengatur WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS .
WINHTTP_OPTION_HANDLE_TYPE
Mengambil nilai bilangan bulat panjang yang tidak ditandatangani yang berisi jenis handel HINTERNET yang diteruskan. Nilai pengembalian dapat berupa salah satu dari nilai berikut:
Istilah | Deskripsi |
---|---|
WINHTTP_HANDLE_TYPE_CONNECT | Handel adalah handel koneksi. |
WINHTTP_HANDLE_TYPE_REQUEST | Handel adalah handel permintaan. |
WINHTTP_HANDLE_TYPE_SESSION | Handel adalah handel sesi. |
WINHTTP_OPTION_HTTP_PROTOCOL_REQUIRED
Mencegah versi protokol selain yang diaktifkan oleh WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL agar tidak digunakan untuk permintaan tersebut.
WINHTTP_OPTION_HTTP_PROTOCOL_USED
Mendapatkan DWORD yang menunjukkan versi HTTP tingkat lanjut mana yang digunakan pada permintaan tertentu. Untuk daftar nilai yang mungkin, lihat WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL.
WINHTTP_OPTION_HTTP_VERSION
Mengatur atau mengambil struktur HTTP_VERSION_INFO yang berisi versi HTTP yang didukung. Ini adalah opsi seluruh proses; gunakan NULL untuk handel.
WINHTTP_OPTION_HTTP2_KEEPALIVE
Opsi ini dapat diatur pada handel sesi agar WinHttp menggunakan bingkai PING HTTP/2 sebagai mekanisme keepalive. Penelepon menentukan batas waktu dalam milidetik, dan setelah tidak ada aktivitas pada koneksi untuk periode waktu habis tersebut, WinHttp akan mulai mengirim bingkai PING HTTP/2. Penelepon tidak dapat mengatur nilai batas waktu kurang dari 5000 milidetik.
WINHTTP_OPTION_HTTP2_PLUS_TRANSFER_ENCODING
Opsi ini bisa diatur pada handel permintaan WinHttp untuk mengontrol bagaimana WinHttp berperilaku ketika respons HTTP/2 berisi header "Transfer-Encoding". Dalam kasus seperti itu, WinHttp akan mengembalikan kesalahan jika opsi ini diatur ke FALSE.
WINHTTP_OPTION_HTTP2_RECEIVE_WINDOW
Atur ukuran jendela penerimaan aliran HTTP/2 awal dan ambang batas untuk mengirim pembaruan jendela menggunakan struct WINHTTP_HTTP2_RECEIVE_WINDOW .
WINHTTP_OPTION_HTTP3_HANDSHAKE_TIMEOUT
Menggunakan buffer untuk mengatur batas waktu handshake HTTP/3 dalam milidetik sebagai PDWORD.
WINHTTP_OPTION_HTTP3_INITIAL_RTT
Mengonfigurasi RTT awal dalam milidetik yang digunakan oleh msquic.
WINHTTP_OPTION_HTTP3_KEEPALIVE
Mengaktifkan semantik tetap hidup untuk koneksi. Menggunakan buffer untuk mengatur batas waktu tetap hidup dalam milidetik sebagai PDWORD.
WINHTTP_OPTION_HTTP3_STREAM_ERROR_CODE
Mengambil kesalahan yang disediakan server pada aliran HTTP/3 yang digunakan untuk mengirim permintaan.
WINHTTP_OPTION_IGNORE_CERT_REVOCATION_OFFLINE
Perbolehkan sambungan aman untuk menggunakan sertifikat keamanan yang daftar pencabutan sertifikatnya tidak dapat diunduh.
WINHTTP_OPTION_IPV6_FAST_FALLBACK
Memungkinkan fallback cepat IPv6 (Happier Eyeballs) untuk koneksi. Perilaku ini mirip dengan perilaku Happy Eyeballs yang dijelaskan dalam RFC 6555 untuk meningkatkan waktu koneksi pada jaringan di mana IPv6 tidak dapat diandalkan.
- Jika alamat IPv6 dan IPv4 diselesaikan untuk host tertentu, WinHttp akan mulai dengan menyambungkan ke alamat IPv6 pertama yang diselesaikan dengan batas waktu singkat (300ms).
- Jika koneksi tersebut gagal, WinHttp akan mencoba menyambungkan ke alamat IPv4 pertama yang diselesaikan dengan batas waktu standar.
- Jika koneksi kedua gagal, WinHttp akan mencoba kembali alamat IPv6 pertama yang diselesaikan dengan batas waktu standar.
- Jika koneksi ketiga gagal, WinHttp akan kembali ke perilaku default untuk alamat yang tersisa, mencoba koneksi ke masing-masing dengan batas waktu standar hingga koneksi dibuat atau tidak ada alamat yang tersisa.
WINHTTP_OPTION_IS_PROXY_CONNECT_RESPONSE
Mendapatkan apakah Respons Proxy Return Connect dapat diambil atau tidak.
WINHTTP_OPTION_MATCH_CONNECTION_GUID
Mengambil struct WINHTTP_MATCH_CONNECTION_GUID untuk memberi tahu WinHTTP untuk melayani permintaan pada koneksi yang cocok. Jika WINHTTP_MATCH_CONNECTION_GUID_FLAG_REQUIRED diatur, maka hanya koneksi dengan GUID yang cocok yang dapat digunakan. Jika tidak, koneksi dengan GUID dan koneksi yang cocok yang tidak ditandai dengan GUID apa pun dapat digunakan.
WINHTTP_OPTION_MAX_CONNS_PER_1_0_SERVER
Mengatur atau mengambil nilai bilangan bulat panjang yang tidak ditandatangani yang berisi jumlah maksimum koneksi yang diizinkan per server HTTP/1.0. Nilai defaultnya adalah INFINITE.
Berlaku untuk: Windows Vista dengan SP1 dan yang lebih baru; Windows Server 2008 dan yang lebih baru.
WINHTTP_OPTION_MAX_CONNS_PER_SERVER
Mengatur atau mengambil nilai bilangan bulat panjang yang tidak ditandatangani yang berisi jumlah maksimum koneksi yang diizinkan per server. Nilai defaultnya adalah INFINITE.
Saat opsi ini diatur ke nol, WinHTTP menetapkan batas jumlah koneksi ke 2.
WINHTTP_OPTION_MAX_HTTP_AUTOMATIC_REDIRECTS
Mengatur jumlah maksimum pengalihan yang diikuti WinHTTP; defaultnya adalah 10. Batas ini mencegah situs yang tidak sah membuat klien WinHTTP berhenti sejenak mengikuti sejumlah besar pengalihan.
Berlaku untuk: Windows XP dengan SP1 dan yang lebih baru; Windows 2000 dengan SP3 dan yang lebih baru.
WINHTTP_OPTION_MAX_HTTP_STATUS_CONTINUE
Jumlah maksimum respons kode status Informational 100-199 diabaikan sebelum mengembalikan kode status akhir ke klien WinHTTP. Kode status Informasi 100-199 dapat dikirim oleh server sebelum kode status akhir, dan dijelaskan dalam spesifikasi untuk HTTP/1.1 (untuk informasi selengkapnya, lihat RFC 2616). Nilai defaultnya adalah 10.
Berlaku untuk: Windows XP dengan SP1 dan yang lebih baru; Windows 2000 dengan SP3 dan yang lebih baru.
WINHTTP_OPTION_MAX_RESPONSE_DRAIN_SIZE
Terikat pada jumlah data yang dikosongkan dari respons untuk menggunakan kembali koneksi, yang ditentukan dalam byte. Defaultnya adalah 1MB.
Berlaku untuk: Windows XP dengan SP1 dan yang lebih baru; Windows 2000 dengan SP3 dan yang lebih baru.
WINHTTP_OPTION_MAX_RESPONSE_HEADER_SIZE
Kumpulan terikat pada ukuran maksimum bagian header respons server, ditentukan dalam byte. Batas ini melindungi klien dari server yang tidak sah yang mencoba mengulur waktu klien dengan mengirim respons dengan jumlah data header yang tidak terbatas. Nilai defaultnya adalah 64KB.
Berlaku untuk: Windows XP dengan SP1 dan yang lebih baru; Windows 2000 dengan SP3 dan yang lebih baru.
WINHTTP_OPTION_PARENT_HANDLE
Mengambil handel induk ke handel ini.
WINHTTP_OPTION_PASSPORT_COBRANDING_TEXT
Mengambil string yang berisi teks kobranding yang disediakan oleh server masuk Paspor. Opsi ini harus diambil segera setelah server masuk merespons dengan kode status 401. Aplikasi harus lulus dalam ukuran buffer, dalam byte, yang cukup besar untuk menahan string yang dikembalikan.
WINHTTP_OPTION_PASSPORT_COBRANDING_URL
Mengambil string yang berisi URL untuk grafik kobranding yang disediakan oleh server masuk Paspor. Opsi ini harus diambil segera setelah server masuk merespons dengan kode status 401. Aplikasi harus lulus dalam ukuran buffer, dalam byte, yang cukup besar untuk menahan string yang dikembalikan.
WINHTTP_OPTION_PASSPORT_RETURN_URL
Mengatur opsi baca-saja pada handel permintaan yang mengambil URL pengembalian Paspor.
WINHTTP_OPTION_PASSPORT_SIGN_OUT
Mengatur opsi pada handel sesi untuk keluar dari login Paspor apa pun. Aplikasi harus meneruskan URL pengembalian Paspor yang diambil dengan WINHTTP_OPTION_PASSPORT_RETURN_URL. Semua cookie yang terkait dengan URL pengembalian dibersihkan.
WINHTTP_OPTION_PASSWORD
Mengatur atau mengambil nilai string yang berisi kata sandi yang terkait dengan handel permintaan.
WINHTTP_OPTION_PROXY
Mengatur atau mengambil struktur WINHTTP_PROXY_INFO yang berisi data proksi pada handel sesi atau handel permintaan yang ada. Saat mengambil data proksi, aplikasi harus membebaskan string lpszProxy dan lpszProxyBypass yang terkandung dalam struktur ini (jika bukan NULL) menggunakan fungsi GlobalFree . Aplikasi dapat mengkueri data proksi global (proksi default) dengan meneruskan handel NULL .
WINHTTP_OPTION_PROXY_PASSWORD
Mengatur atau mengambil nilai string yang berisi kata sandi yang digunakan untuk mengakses proksi.
WINHTTP_OPTION_PROXY_SPN_USED
Mendapatkan Nama Prinsipal Server proksi yang disediakan WinHTTP ke SSPI selama autentikasi. Nilai string ini digunakanuntuk meneruskan ke SspiPromptForCredentials setelah kegagalan autentikasi.
WINHTTP_OPTION_PROXY_USERNAME
Mengatur atau mengambil nilai string yang berisi nama pengguna yang digunakan untuk mengakses proksi.
WINHTTP_OPTION_QUIC_STATS
Mengambil struktur QUIC_STATISTICS yang berisi informasi koneksi seperti RTT dan byte yang dikirim dan diterima.
WINHTTP_OPTION_READ_BUFFER_SIZE
Opsi ini tidak digunakan lagi; tidak berpengaruh.
WINHTTP_OPTION_RECEIVE_PROXY_CONNECT_RESPONSE
Mengatur apakah entitas respons proksi dapat diambil atau tidak. Pemadatan dinonaktifkan secara default.
WINHTTP_OPTION_RECEIVE_RESPONSE_TIMEOUT
Mengatur atau mengambil nilai bilangan bulat panjang yang tidak ditandatangani yang berisi nilai batas waktu, dalam milidetik, untuk menunggu menerima semua header respons ke permintaan. Jika WinHTTP gagal menerima semua header dalam periode waktu habis ini, permintaan dibatalkan. Nilai batas waktu default adalah 90 detik.
Batas waktu ini hanya diperiksa ketika data diterima dari soket. Akibatnya, ketika batas waktu kedaluwarsa aplikasi klien tidak diberi tahu sampai lebih banyak data tiba dari server. Jika tidak ada data yang tiba dari server, penundaan antara kedaluwarsa waktu habis dan pemberitahuan aplikasi klien bisa sebesar nilai batas waktu yang ditetapkan menggunakan parameter dwReceiveTimeout dari fungsi WinHttpSetTimeouts .
WINHTTP_OPTION_RECEIVE_TIMEOUT
Mengatur atau mengambil nilai bilangan bulat panjang yang tidak ditandatangani yang berisi nilai waktu habis, dalam milidetik, untuk menerima respons parsial terhadap permintaan atau membaca beberapa data. Jika respons membutuhkan waktu lebih lama dari nilai waktu habis ini, permintaan dibatalkan. Nilai batas waktu default adalah 30 detik.
WINHTTP_OPTION_REDIRECT_POLICY
Mengatur perilaku WinHTTP mengenai penanganan kode status pengalihan HTTP 30x. Opsi ini dapat diatur pada sesi atau handel permintaan ke salah satu nilai berikut:
Istilah | Deskripsi |
---|---|
WINHTTP_OPTION_REDIRECT_POLICY_ALWAYS | Semua pengalihan diikuti secara otomatis. |
WINHTTP_OPTION_REDIRECT_POLICY_DISALLOW_HTTPS_TO_HTTP | Semua pengalihan diikuti, kecuali yang berasal dari URL aman (https) ke URL yang tidak aman (http). Ini adalah pengaturan default. |
WINHTTP_OPTION_REDIRECT_POLICY_NEVER | Pengalihan tidak pernah diikuti. Status 30x dikembalikan ke aplikasi. |
WINHTTP_OPTION_REJECT_USERPWD_IN_URL
Menolak URL yang berisi nama pengguna dan kata sandi. Opsi ini juga menolak URL yang berisi semantik nama pengguna:kata sandi , meskipun tidak ada nama pengguna atau kata sandi yang ditentukan. Misalnya, "u:p@hostname", ":@hostname", "u:@hostname", dan ":p@hostname" semuanya akan ditandai sebagai tidak valid. Jika URL yang tidak valid diteruskan ke fungsi, URL akan mengembalikan ERROR_WINHTTP_INVALID_URL. Opsi ini dinonaktifkan secara default.
WINHTTP_OPTION_REQUEST_ANNOTATION
Memungkinkan mendapatkan dan mengatur anotasi permintaan untuk nama anotasi yang disediakan. Itu memungkinkan penelepon untuk melampirkan string ke permintaan untuk pengambilan nanti untuk mengidentifikasi permintaan dengan logika kustom apa pun yang menurut pemanggil berguna.
WINHTTP_OPTION_REQUEST_PRIORITY
Opsi ini tidak digunakan lagi; tidak berpengaruh.
WINHTTP_OPTION_REQUEST_STATS
Retreives statistik untuk permintaan. Untuk daftar statistik yang tersedia, lihat WINHTTP_REQUEST_STATS.
WINHTTP_OPTION_REQUEST_TIMES
Retreives informasi waktu untuk permintaan. Untuk daftar waktu yang tersedia, lihat WINHTTP_REQUEST_TIMES.
WINHTTP_OPTION_REQUIRE_STREAM_END
Opsi ini memberi tahu WinHttp untuk mengabaikan header respons "Panjang Konten", dan terus menerima aliran hingga bendera END_STREAM diterima.
WINHTTP_OPTION_RESOLUTION_HOSTNAME
Opsi ini dapat diatur pada handel permintaan WinHttp sebelum dikirim. Jika diatur, WinHttp akan menggunakan string yang disediakan penelepon sebagai nama host untuk resolusi DNS.
WINHTTP_OPTION_RESOLVE_TIMEOUT
Mengatur atau mengambil nilai bilangan bulat panjang yang tidak ditandatangani yang berisi nilai waktu habis, dalam milidetik, untuk mengatasi nama host. Nilai batas waktu default adalah INFINITE. Jika nilai non-default ditentukan, ada overhead dari satu pembuatan utas per resolusi nama.
WINHTTP_OPTION_REVERT_IMPERSONATION_SERVER_CERT
Mengembalikan peniruan utas apa pun saat membangun rantai sertifikasi server, memaksa penggunaan token proses sebagai gantinya.
WINHTTP_OPTION_SECURE_PROTOCOLS
Mengatur nilai bilangan bulat panjang yang tidak ditandatangani yang menentukan protokol aman mana yang dapat diterima.
- Windows 11, Windows 10, dan Windows 8.1. Secara default, hanya SSL3, TLS1.0, TLS1.1, dan TLS1.2 yang diaktifkan.
- Windows 8 dan Windows 7. Secara default, hanya SSL3 dan TLS1 yang diaktifkan.
Nilainya bisa berupa kombinasi dari satu atau beberapa nilai berikut.
Istilah | Deskripsi |
---|---|
WINHTTP_FLAG_SECURE_PROTOCOL_ALL | Protokol Secure Sockets Layer (SSL) 2.0, SSL 3.0, dan Transport Layer Security (TLS) 1.0 dapat digunakan. |
WINHTTP_FLAG_SECURE_PROTOCOL_SSL2 | Protokol SSL 2.0 dapat digunakan. |
WINHTTP_FLAG_SECURE_PROTOCOL_SSL3 | Protokol SSL 3.0 dapat digunakan. |
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1 | Protokol TLS 1.0 dapat digunakan. |
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_1 | Protokol TLS 1.1 dapat digunakan. |
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_2 | Protokol TLS 1.2 dapat digunakan. |
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_3 | Protokol TLS 1.3 dapat digunakan. |
Jika Anda perlu menambahkan dukungan untuk protokol TLS 1.1 atau TLS 1.2, tetapi Anda tidak dapat mengkombinasikan ulang aplikasi Anda untuk menggunakan nilai WINHTTP_OPTION_SECURE_PROTOCOLS yang sesuai, maka Anda dapat menambahkan DefaultSecureProtocols
entri registri. Entri registri tersebut memungkinkan Anda menentukan protokol SSL mana yang harus digunakan saat bendera WINHTTP_OPTION_SECURE_PROTOCOLS digunakan.
Penting
Instruksi di bawah ini melibatkan modifikasi registri. Namun, masalah serius mungkin terjadi jika Anda salah memodifikasi registri. Oleh karena itu, pastikan Anda mengikuti instruksi ini dengan hati-hati. Untuk perlindungan tambahan, cadangkan registri sebelum Anda mengubahnya. Lalu, Anda dapat memulihkan registri jika terjadi masalah. Untuk informasi selengkapnya tentang cara mencadangkan dan memulihkan registri, lihat Cara mencadangkan dan memulihkan registri di Windows.
Ketika aplikasi menentukan WINHTTP_OPTION_SECURE_PROTOCOLS, sistem memeriksa entri registri DefaultSecureProtocols
dan, jika ada, mengambil alih protokol default yang ditentukan oleh WINHTTP_OPTION_SECURE_PROTOCOLS dengan protokol yang ditentukan dalam DefaultSecureProtocols
entri registri. Jika entri registri tidak ada, Maka WinHTTP menggunakan default sistem operasi yang ada untuk WINHTTP_OPTION_SECURE_PROTOCOLS. Default WinHTTP ini mengikuti aturan prioritas yang ada, dan ditimpa oleh protokol dan protokol yang dinonaktifkan Saluran Aman (Schannel) yang ditetapkan per aplikasi oleh WinHttpSetOption.
Anda dapat menambahkan DefaultSecureProtocols
entri registri di jalur berikut:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp
Pada komputer berbasis x64, Anda juga harus menambahkan DefaultSecureProtocols
ke Wow6432Node
jalur:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp
Nilai registri adalah bitmap DWORD. Nilai yang akan digunakan ditentukan dengan menambahkan nilai yang sesuai dengan protokol yang diinginkan.
Nilai DefaultSecureProtocols | Protokol diaktifkan |
---|---|
0x00000008 | Aktifkan SSL 2.0 secara default |
0x00000020 | Aktifkan SSL 3.0 secara default |
0x00000080 | Aktifkan TLS 1.0 secara default |
0x00000200 | Aktifkan TLS 1.1 secara default |
0x00000800 | Aktifkan TLS 1.2 secara default |
Misalnya, jika Anda ingin mengambil alih nilai default untuk WINHTTP_OPTION_SECURE_PROTOCOLS untuk menentukan TLS 1.1 dan TLS 1.2. Dalam hal ini, ambil nilai untuk TLS 1.1 (0x00000200) dan nilai untuk TLS 1.2 (0x00000800), tambahkan bersama-sama dalam kalkulator (dalam mode programmer), dan nilai registri yang dihasilkan akan 0x00000A00.
WINHTTP_OPTION_SECURITY_CERTIFICATE_STRUCT
Mengambil sertifikat untuk server SSL/TLS ke dalam struktur WINHTTP_CERTIFICATE_INFO . Aplikasi harus membebaskan anggota lpszSubjectInfo dan lpszIssuerInfo dengan LocalFree.
WINHTTP_OPTION_SECURITY_FLAGS
Mengatur atau mengambil nilai bilangan bulat panjang yang tidak ditandatangani yang berisi bendera keamanan untuk handel. Ini bisa menjadi kombinasi dari nilai-nilai ini:
Istilah | Deskripsi |
---|---|
SECURITY_FLAG_IGNORE_CERT_CN_INVALID | Memungkinkan nama umum yang tidak valid dalam sertifikat; artinya, nama server yang ditentukan oleh aplikasi tidak cocok dengan nama umum dalam sertifikat. Jika bendera ini diatur, aplikasi tidak menerima panggilan balik WINHTTP_CALLBACK_STATUS_FLAG_CERT_CN_INVALID . |
SECURITY_FLAG_IGNORE_CERT_DATE_INVALID | Memungkinkan tanggal sertifikat yang tidak valid, yaitu sertifikat yang kedaluwarsa atau belum efektif. Jika bendera ini diatur, aplikasi tidak menerima panggilan balik WINHTTP_CALLBACK_STATUS_FLAG_CERT_DATE_INVALID . |
SECURITY_FLAG_IGNORE_UNKNOWN_CA | Mengizinkan otoritas sertifikat yang tidak valid. Jika bendera ini diatur, aplikasi tidak menerima panggilan balik WINHTTP_CALLBACK_STATUS_FLAG_INVALID_CA . |
SECURITY_FLAG_IGNORE_CERT_WRONG_USAGE | Memungkinkan identitas server dibuat dengan sertifikat non-server (misalnya, sertifikat klien). |
SECURITY_FLAG_IGNORE_WEAK_SIGNATURE | Memungkinkan tanda tangan lemah diabaikan. Bendera ini tersedia dalam pembaruan rollup untuk setiap OS yang dimulai dengan Windows 7 dan Windows Server 2008 R2. |
SECURITY_FLAG_SECURE | Menggunakan transfer aman. Ini hanya dikembalikan dalam panggilan ke WinHttpQueryOption. |
SECURITY_FLAG_STRENGTH_MEDIUM | Menggunakan enkripsi sedang (56-bit). Ini hanya dikembalikan dalam panggilan ke WinHttpQueryOption. |
SECURITY_FLAG_STRENGTH_STRONG | Menggunakan enkripsi yang kuat (128-bit). Ini hanya dikembalikan dalam panggilan ke WinHttpQueryOption. |
SECURITY_FLAG_STRENGTH_WEAK | Menggunakan enkripsi lemah (40-bit). Ini hanya dikembalikan dalam panggilan ke WinHttpQueryOption. |
WINHTTP_OPTION_SECURITY_INFO
Mengulangi koneksi SChannel dan informasi cipher untuk permintaan.
WINHTTP_OPTION_SECURITY_KEY_BITNESS
Mengambil nilai bilangan bulat panjang yang tidak ditandatangani yang berisi kekuatan cipher kunci enkripsi. Angka yang lebih besar menunjukkan enkripsi kekuatan sandi yang lebih kuat.
WINHTTP_OPTION_SEND_TIMEOUT
Mengatur atau mengambil nilai bilangan bulat panjang yang tidak ditandatangani yang berisi nilai waktu habis, dalam milidetik, untuk mengirim permintaan atau menulis beberapa data. Jika mengirim permintaan membutuhkan waktu lebih lama dari waktu habis, operasi pengiriman dibatalkan. Batas waktu default adalah 30 detik.
WINHTTP_OPTION_SERVER_CBT
Mendapatkan penunjuk ke struktur SecPkgContext_Bindings yang menentukan Token Pengikatan Saluran (CBT).
Token Pengikatan Saluran adalah properti saluran transportasi aman dan digunakan untuk mengikat saluran autentikasi ke saluran transportasi aman. Token ini hanya dapat diperoleh dengan opsi ini setelah koneksi SSL dibuat.
Catatan
Meneruskan opsi ini dan nilai null untuk lpBuffer ke WinHttpQueryOption akan mengembalikan ERROR_INSUFFICIENT_BUFFER dan ukuran byte yang diperlukan untuk buffer dalam parameter lpdwBufferLength . Nilai ukuran buffer yang dikembalikan ini dapat diteruskan dalam panggilan berikutnya untuk mengkueri Token Pengikatan Saluran. Langkah-langkah ini diperlukan saat menangani WINHTTP_CALLBACK_STATUS_REQUEST jika Anda ingin mengubah header permintaan berdasarkan Token Pengikatan Saluran. Perhatikan bahwa Windows XP dan Vista tidak mendukung pengubahan header permintaan selama panggilan balik ini.
WINHTTP_OPTION_SERVER_CERT_CHAIN_CONTEXT
Mengambil konteks rantai sertifikasi server. WINHTTP_OPTION_SERVER_CERT_CHAIN_CONTEXT dapat diteruskan untuk mendapatkan penunjuk duplikat ke CERT_CHAIN_CONTEXT untuk rantai sertifikat server yang diterima selama koneksi SSL yang dinegosiasikan. Klien harus memanggil CertFreeCertificateContext pada penunjuk PCCERT_CONTEXT yang dikembalikan yang diisi ke dalam buffer.
WINHTTP_OPTION_SERVER_CERT_CONTEXT
Mengambil konteks sertifikasi server. WINHTTP_OPTION_SERVER_CERT_CONTEXT dapat diteruskan untuk mendapatkan penunjuk duplikat ke CERT CONTEXT untuk sertifikat server yang diterima selama koneksi SSL yang dinegosiasikan. Klien harus memanggil CertFreeCertificateContext pada penunjuk PCCERT_CONTEXT yang dikembalikan yang diisi ke dalam buffer.
WINHTTP_OPTION_SERVER_SPN_USED
Mendapatkan Server Principal Name server yang disediakan WinHTTP ke SSPI selama autentikasi. Nilai string ini dapat diteruskan ke SspiPromptForCredentials setelah kegagalan autentikasi.
WINHTTP_OPTION_SPN
Menyertakan atau menghapus nomor port server ketika SPN (nama perwakilan layanan) dibangun untuk Kerberos atau Negosiasi autentikasi Kerberos. Bendera ini adalah salah satu nilai berikut:
Istilah | Deskripsi |
---|---|
WINHTTP_DISABLE_SPN_SERVER_PORT | Menghapus nomor port server. |
WINHTTP_ENABLE_SPN_SERVER_PORT | Menyertakan nomor port server. |
WINHTTP_OPTION_STREAM_ERROR_CODE
Opsi ini dapat dikueri pada handel permintaan WinHttp, dan akan mengembalikan kode kesalahan yang ditunjukkan oleh bingkai RST_STREAM yang diterima pada aliran HTTP.
WINHTTP_OPTION_TCP_FAST_OPEN
Mengaktifkan TCP Fast Open untuk koneksi.
WINHTTP_OPTION_TCP_KEEPALIVE
Opsi ini dapat diatur pada handel sesi WinHttp untuk mengaktifkan perilaku tetap hidup TCP pada soket yang mendasar. Mengambil struct tcp_keepalive .
WINHTTP_OPTION_TLS_FALSE_START
Mengaktifkan TLS False Start untuk koneksi.
WINHTTP_OPTION_TCP_PRIORITY_STATUS
Kueri prioritas yang diisyaratkan dari kumpulan soket TCP dengan WINHTTP_OPTION_TCP_PRIORITY_HINT. Lihat dokumentasi untuk SIO_SET_PRIORITY_HINT untuk detail selengkapnya.
WINHTTP_OPTION_TLS_PROTOCOL_INSECURE_FALLBACK
Opsi ini dapat diatur pada handel sesi WinHttp untuk mengontrol apakah fallback ke TLS 1.0 diizinkan jika ada kegagalan jabat tangan TLS dengan versi protokol yang lebih baru.
WINHTTP_OPTION_UNLOAD_NOTIFY_EVENT
Mengambil peristiwa yang akan diatur ketika panggilan balik terakhir telah selesai untuk sesi tertentu. Bendera ini harus digunakan pada handel sesi. Acara tidak dapat ditutup sampai setelah ditetapkan oleh WinHTTP.
WINHTTP_OPTION_UNSAFE_HEADER_PARSING
Opsi ini dicadangkan untuk penggunaan internal dan tidak boleh dipanggil.
WINHTTP_OPTION_UPGRADE_TO_WEB_SOCKET
Menginstruksikan tumpukan untuk memulai proses jabat tangan WebSocket dengan WinHttpSendRequest. Opsi ini tidak mengambil parameter.
WINHTTP_OPTION_URL
Mengambil nilai string yang berisi URL lengkap sumber daya yang diunduh. Jika URL asli berisi data tambahan, seperti string pencarian atau jangkar, atau jika panggilan dialihkan, URL yang dikembalikan berbeda dari aslinya. Aplikasi harus meneruskan buffer, berukuran dalam byte, yang cukup besar untuk menahan URL yang dikembalikan dalam karakter lebar.
WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS
Mengambil BOOL dan hanya dapat diatur handel sesi. Ini hanya akan menyebar ke bawah untuk menangani yang dibuat dari handel sesi setelah opsi diatur. Jika TRUE, opsi ini menyebabkan sebagai upaya terakhir penggunaan kredensial server global yang didorong turun dari WinInet. Default untuk opsi ini adalah FALSE. Opsi ini memerlukan kunci registri HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings! ShareCredsWithWinHttp. Kunci registri ini tidak ada secara default. Ketika diatur, WinINet akan mengirim kredensial ke WinHTTP. Setiap kali WinHttp mendapatkan tantangan autentikasi dan jika tidak ada kredensial yang diatur pada handel saat ini, winhttp akan menggunakan kredensial yang disediakan oleh WinINet.
WINHTTP_OPTION_USE_SESSION_SCH_CRED
Memungkinkan pengaturan kredensial tunggal untuk digunakan secara default untuk semua titik akhir dalam sesi alih-alih memiliki kredensial default per titik akhir. Itu mungkin meningkatkan performa dengan mengurangi overhead manajemen kredensial. Perhatikan bahwa kredensial default ini tidak akan berpengaruh ketika sertifikat klien disediakan secara eksplisit.
WINHTTP_OPTION_USER_AGENT
Mengatur atau mengambil string agen pengguna pada handel yang disediakan oleh WinHttpOpen dan digunakan dalam fungsi WinHttpSendRequest berikutnya, selama tidak ditimpa oleh header yang ditambahkan oleh WinHttpAddRequestHeaders atau WinHttpSendRequest. Saat mengambil agen pengguna, aplikasi harus melewati buffer, berukuran byte, yang cukup besar untuk menahan URL yang dikembalikan dalam karakter lebar. Saat mengatur agen pengguna, ukuran buffer adalah panjang string, dalam karakter, ditambah terminator NULL .
WINHTTP_OPTION_USERNAME
Mengatur atau mengambil string yang berisi nama pengguna.
WINHTTP_OPTION_WEB_SOCKET_CLOSE_TIMEOUT
Mengatur waktu, dalam milidetik, WinHttpWebSocketClose harus menunggu untuk menyelesaikan jabat tangan dekat. Defaultnya adalah 10 detik.
WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL
Mengatur interval, dalam milidetik, untuk mengirim paket tetap hidup melalui koneksi. Interval default adalah 30000 (30 detik). Interval minimum adalah 15000 (15 detik). Menggunakan WinHttpSetOption untuk menetapkan nilai yang lebih rendah dari 15000 akan kembali dengan ERROR_INVALID_PARAMETER.
Catatan
Nilai default untuk WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL dibaca dari HKLM:\SOFTWARE\Microsoft\WebSocket\KeepaliveInterval. Jika nilai tidak diatur, nilai default 30000 akan digunakan. Tidak dimungkinkan untuk memiliki interval keepalive yang lebih rendah dari 15000 milidetik.
WINHTTP_OPTION_WEB_SOCKET_RECEIVE_BUFFER_SIZE
Mengatur atau mengambil DWORD yang menentukan ukuran buffer penerima yang akan digunakan pada koneksi WebSocket.
WINHTTP_OPTION_WEB_SOCKET_SEND_BUFFER_SIZE
Mengatur atau mengambil DWORD yang menentukan ukuran buffer kirim yang akan digunakan pada koneksi WebSocket.
WINHTTP_OPTION_WORKER_THREAD_COUNT
Mengatur nilai bilangan bulat panjang yang tidak ditandatangani yang menentukan jumlah utas pekerja yang harus digunakan kumpulan utas untuk penyelesaian asinkron. Nilai default opsi ini adalah nol, yang menentukan bahwa jumlah utas pekerja sama dengan jumlah CPU pada sistem. Opsi ini hanya dapat diatur pada handel NULLHINTERNET sebelum operasi asinkron terjadi. Opsi ini hanya dapat diatur sekali.
Berlaku untuk: Windows 7 dan yang lebih baru; Windows Server 2008 R2 dan yang lebih baru.
WINHTTP_OPTION_WRITE_BUFFER_SIZE
Opsi ini tidak digunakan lagi; tidak berpengaruh.
Keterangan
Tabel berikut mencantumkan bendera opsi dengan menentukan handel mana yang dapat mereka tindak lanjuti, apakah mereka dapat dikueri dan diatur, dan jenis data yang digunakan. "X" menunjukkan bahwa bendera opsi valid untuk digunakan dengan fungsi atau handel, sementara "-" menentukan bahwa bendera opsi tidak valid.
Mencoba mengatur atau mengkueri bendera opsi pada versi Windows yang tidak didukung akan menghasilkan ERROR_WINHTTP_INVALID_OPTION.
Bendera opsi, dan jenis data | Handel sesi | Handel permintaan | Opsi kueri | Atur opsi | Versi Windows Minimum |
---|---|---|---|---|---|
WINHTTP_OPTION_ASSURED_NON_BLOCKING_CALLBACKS BOOL |
X | - | - | X | - |
WINHTTP_OPTION_AUTOLOGON_POLICY DWORD |
- | X | - | X | - |
WINHTTP_OPTION_BACKGROUND_CONNECTIONS DWORD |
X | - | - | X | Windows 10 Versi 21H1 |
WINHTTP_OPTION_CALLBACK LPVOID |
X | X | X | X | - |
WINHTTP_OPTION_CLIENT_CERT_CONTEXT CERT_CONTEXT |
- | X | - | X | Windows Vista |
WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST SecPkgContext_IssuerListInfoEx |
- | X | X | - | Windows Vista |
WINHTTP_OPTION_CODEPAGE DWORD |
X | - | - | X | - |
WINHTTP_OPTION_CONFIGURE_PASSPORT_AUTH DWORD |
X | - | - | X | - |
WINHTTP_OPTION_CONNECT_RETRIES DWORD |
X | X | X | X | - |
WINHTTP_OPTION_CONNECT_TIMEOUT DWORD |
X | X | X | X | - |
WINHTTP_OPTION_CONNECTION_INFO WINHTTP_CONNECTION_INFO |
- | X | X | - | - |
WINHTTP_OPTION_CONNECTION_STATS_V0 TCP_INFO_v0 |
- | X | X | - | Windows 10 Versi 1903 |
WINHTTP_OPTION_CONNECTION_STATS_V1 TCP_INFO_v1 |
- | X | X | - | Windows 10 Versi 2004 |
WINHTTP_OPTION_CONTEXT_VALUE DWORD_PTR |
X | X | X | X | - |
WINHTTP_OPTION_DECOMPRESSION DWORD |
X | X | - | X | Windows 8.1 |
WINHTTP_OPTION_DISABLE_CERT_CHAIN_BUILDING BOOL |
X | - | - | X | Windows 10 Versi 21H1 |
WINHTTP_OPTION_DISABLE_FEATURE DWORD |
- | X | - | X | - |
WINHTTP_OPTION_DISABLE_SECURE_PROTOCOL_FALLBACK BOOL |
X | - | - | X | Windows 10 Versi 1903 |
WINHTTP_OPTION_DISABLE_STREAM_QUEUE BOOL |
X | X | - | X | Windows 10 Versi 1809 |
WINHTTP_OPTION_ENABLE_FEATURE DWORD |
* | * | - | X | - |
WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL DWORD |
X | X | - | X | Windows 10 Versi 1607 |
WINHTTP_OPTION_ENABLE_HTTP2_PLUS_CLIENT_CERT_CONTEXT BOOL |
X | - | - | X | Windows 10 Versi 21H1 |
WINHTTP_OPTION_ENABLETRACING DWORD |
- | - | X | X | - |
WINHTTP_OPTION_ENCODE_EXTRA BOOL |
X | X | - | X | Windows 10 Versi 1803 |
WINHTTP_OPTION_EXPIRE_CONNECTION T/A |
- | X | - | X | Windows 10 Versi 1903 |
WINHTTP_OPTION_EXTENDED_ERROR DWORD |
X | X | X | - | - |
WINHTTP_OPTION_FIRST_AVAILABLE_CONNECTION BOOL |
X | - | - | X | Windows 10 Versi 21H1 |
WINHTTP_OPTION_GLOBAL_PROXY_CREDS WINHTTP_CREDS |
X | X | - | X | - |
WINHTTP_OPTION_GLOBAL_SERVER_CREDS WINHTTP_CREDS_EX |
X | X | - | X | - |
WINHTTP_OPTION_HANDLE_TYPE DWORD |
X | X | X | - | - |
WINHTTP_OPTION_HTTP_PROTOCOL_REQUIRED BOOL |
X | X | - | X | Windows 10 Versi 1903 |
WINHTTP_OPTION_HTTP_PROTOCOL_USED DWORD |
- | X | X | - | Windows 10 Versi 1607 |
WINHTTP_OPTION_HTTP_VERSION HTTP_VERSION_INFO |
X | X | X | X | - |
WINHTTP_OPTION_HTTP2_KEEPALIVE DWORD |
X | - | - | X | Windows 10 Versi 21H1 |
WINHTTP_OPTION_HTTP2_PLUS_TRANSFER_ENCODING BOOL |
X | X | - | X | Windows 10 Versi 21H1 |
WINHTTP_OPTION_IGNORE_CERT_REVOCATION_OFFLINE BOOL |
- | X | - | X | Windows 10 Versi 2004 |
WINHTTP_OPTION_IPV6_FAST_FALLBACK BOOL |
X | - | - | X | Windows 10 Versi 1903 |
WINHTTP_OPTION_IS_PROXY_CONNECT_RESPONSE BOOL |
X | X | X | - | - |
WINHTTP_OPTION_MAX_CONNS_PER_1_0_SERVER DWORD |
X | - | X | X | - |
WINHTTP_OPTION_MAX_CONNS_PER_SERVER DWORD |
X | - | X | X | - |
WINHTTP_OPTION_MAX_HTTP_AUTOMATIC_REDIRECTS DWORD |
X | X | X | X | - |
WINHTTP_OPTION_MAX_HTTP_STATUS_CONTINUE DWORD |
X | X | X | X | - |
WINHTTP_OPTION_MAX_RESPONSE_DRAIN_SIZE DWORD |
X | X | X | X | - |
WINHTTP_OPTION_MAX_RESPONSE_HEADER_SIZE DWORD |
X | X | X | X | - |
WINHTTP_OPTION_PARENT_HANDLE HINTERNET |
X | X | X | - | - |
WINHTTP_OPTION_PASSPORT_COBRANDING_TEXT LPWSTR |
- | X | X | - | - |
WINHTTP_OPTION_PASSPORT_COBRANDING_URL LPWSTR |
- | X | X | - | - |
WINHTTP_OPTION_PASSPORT_RETURN_URL LPVOID |
- | X | X | - | - |
WINHTTP_OPTION_PASSPORT_SIGN_OUT LPVOID |
X | - | - | X | - |
WINHTTP_OPTION_PASSWORD LPWSTR |
- | X | X | X | - |
WINHTTP_OPTION_PROXY WINHTTP_PROXY_INFO |
X | X | X | X | - |
WINHTTP_OPTION_PROXY_PASSWORD LPWSTR |
- | X | X | X | - |
WINHTTP_OPTION_PROXY_SPN_USED LPWSTR |
- | X | X | - | - |
WINHTTP_OPTION_PROXY_USERNAME LPWSTR |
- | X | X | X | - |
WINHTTP_OPTION_READ_BUFFER_SIZE DWORD |
- | X | X | X | - |
WINHTTP_OPTION_RECEIVE_PROXY_CONNECT_RESPONSE BOOL |
X | X | - | X | - |
WINHTTP_OPTION_RECEIVE_RESPONSE_TIMEOUT DWORD |
X | X | X | X | - |
WINHTTP_OPTION_RECEIVE_TIMEOUT DWORD |
X | X | X | X | - |
WINHTTP_OPTION_REDIRECT_POLICY DWORD |
X | X | X | X | - |
WINHTTP_OPTION_REJECT_USERPWD_IN_URL BOOL |
- | X | - | X | - |
WINHTTP_OPTION_REQUEST_PRIORITY DWORD |
- | X | X | X | - |
WINHTTP_OPTION_REQUEST_STATS WINHTTP_REQUEST_STATS |
- | X | X | - | Windows 10 Versi 1903 |
WINHTTP_OPTION_REQUEST_TIMES WINHTTP_REQUEST_TIMES |
- | X | X | - | Windows 10 Versi 1903 |
WINHTTP_OPTION_REQUIRE_STREAM_END BOOL |
X | X | - | X | Windows 10 Versi 21H1 |
WINHTTP_OPTION_RESOLUTION_HOSTNAME LPWSTR |
- | X | - | X | Windows 10 Versi 21H1 |
WINHTTP_OPTION_RESOLVE_TIMEOUT DWORD |
X | X | X | X | - |
WINHTTP_OPTION_SECURE_PROTOCOLS DWORD |
X | - | - | X | - |
WINHTTP_OPTION_SECURITY_CERTIFICATE_STRUCT WINHTTP_CERTIFICATE_INFO |
- | X | X | - | - |
WINHTTP_OPTION_SECURITY_FLAGS DWORD |
- | X | X | X | - |
WINHTTP_OPTION_SECURITY_INFO WINHTTP_SECURITY_INFO |
- | X | X | - | Windows 10 Versi 2004 |
WINHTTP_OPTION_SECURITY_KEY_BITNESS DWORD |
- | X | X | - | - |
WINHTTP_OPTION_SEND_TIMEOUT DWORD |
X | X | X | X | - |
WINHTTP_OPTION_SERVER_CBT SecPkgContext_Bindings* |
- | X | X | - | - |
WINHTTP_OPTION_SERVER_CERT_CHAIN_CONTEXT CERT_CHAIN_CONTEXT |
- | X | X | - | Windows 10 Versi 2004 |
WINHTTP_OPTION_SERVER_CERT_CONTEXT KONTEKS CERT |
- | X | X | - | - |
WINHTTP_OPTION_SERVER_SPN_USED LPWSTR |
- | X | X | - | - |
WINHTTP_OPTION_SPN DWORD |
- | X | - | X | - |
WINHTTP_OPTION_STREAM_ERROR_CODE DWORD |
- | X | X | - | Windows 10 Versi 21H1 |
WINHTTP_OPTION_TCP_FAST_OPEN BOOL |
X | - | - | X | Windows 10 Versi 2004 |
WINHTTP_OPTION_TCP_KEEPALIVE tcp_keepalive |
X | - | - | X | Windows 10 Versi 2004 |
WINHTTP_OPTION_TLS_FALSE_START BOOL |
X | - | - | X | Windows 10 Versi 2004 |
WINHTTP_OPTION_TLS_PROTOCOL_INSECURE_FALLBACK BOOL |
X | - | - | X | Windows 10 Versi 21H1 |
WINHTTP_OPTION_UNLOAD_NOTIFY_EVENT HINTERNET |
X | - | - | X | - |
WINHTTP_OPTION_UNSAFE_HEADER_PARSING DWORD |
- | X | - | X | - |
WINHTTP_OPTION_UPGRADE_TO_WEB_SOCKET T/A |
- | X | - | X | - |
WINHTTP_OPTION_URL LPWSTR |
- | X | X | - | - |
WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS BOOL |
X | X | - | X | - |
WINHTTP_OPTION_USER_AGENT LPWSTR |
X | - | X | X | - |
WINHTTP_OPTION_USERNAME LPWSTR |
- | X | X | X | - |
WINHTTP_OPTION_WEB_SOCKET_CLOSE_TIMEOUT DWORD |
- | - | X | X | - |
WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL DWORD |
- | - | X | X | - |
WINHTTP_OPTION_WEB_SOCKET_RECEIVE_BUFFER_SIZE DWORD |
X | X | X | X | Windows 8.1 |
WINHTTP_OPTION_WEB_SOCKET_SEND_BUFFER_SIZE DWORD |
X | X | X | X | Windows 8.1 |
WINHTTP_OPTION_WORKER_THREAD_COUNT DWORD |
- | - | - | X | - |
WINHTTP_OPTION_WRITE_BUFFER_SIZE DWORD |
- | X | X | X | - |
Catatan
Untuk Windows XP dan Windows 2000, lihat Persyaratan Run-Time.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows XP, Windows 2000 Professional dengan SP3 [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2003, Windows 2000 Server dengan SP3 [hanya aplikasi desktop] |
Redistribusi | WinHTTP 5.0 dan Internet Explorer 5.01 atau yang lebih baru pada Windows XP dan Windows 2000. |
Header | Winhttp.h |