Udostępnij przez


Flagi opcji

Następujące flagi opcji są obsługiwane przez winHttpQueryOption i WinHttpSetOption.

WINHTTP_OPTION_ASSURED_NON_BLOCKING_CALLBACKS

Wartość domyślna to FALSE. Jeśli ustawiono wartość TRUE, winHTTP nie gwarantuje postępu, jeśli wywołania zwrotne stanu są blokowane przez aplikację klienczą.

Aplikacja kliencka musi zachować szczególną ostrożność, aby wykonać minimalne operacje w ramach wywołania zwrotnego bez blokowania, wracając tak szybko, jak to możliwe, a w szczególności nie może czekać na kolejne wywołania WinHTTP. Jeśli nie zostaną one zgodne z tymi wytycznymi, prawdopodobnie wystąpi negatywny wpływ na wydajność lub potencjalna aplikacja zawiesza się. W przypadku użycia w określony sposób ta opcja może poprawić wydajność.

WINHTTP_OPTION_AUTOLOGON_POLICY

Ustawia niepodpisaną długą wartość całkowitą określającą zasady automatycznego logowania przy użyciu jednej z następujących wartości.

Termin Opis
WINHTTP_AUTOLOGON_SECURITY_LEVEL_HIGH Poświadczenia domyślne nie są używane. Należy pamiętać, że ta flaga ma zastosowanie tylko wtedy, gdy określisz serwer przy użyciu rzeczywistej nazwy maszyny. Nie zacznie obowiązywać, jeśli określisz serwer za pomocą "localhost" lub adresu IP.
WINHTTP_AUTOLOGON_SECURITY_LEVEL_LOW Uwierzytelniony dziennik przy użyciu domyślnych poświadczeń jest wykonywany dla wszystkich żądań.
WINHTTP_AUTOLOGON_SECURITY_LEVEL_MEDIUM Uwierzytelniony dziennik przy użyciu domyślnych poświadczeń jest wykonywany tylko dla żądań w lokalnym intranecie.

WINHTTP_OPTION_BACKGROUND_CONNECTIONS

Po ustawieniu tej opcji na dojściu sesji należy przekazać liczbę połączeń, które chcesz otworzyć. Następnie, po pierwszym wysłaniu żądania, zamiast otwierania tylko jednego połączenia, WinHttp otwiera wiele połączeń równolegle. Może to poprawić wydajność kolejnych żądań do tego samego miejsca docelowego, co nie będzie miało narzutu na utworzenie połączenia.

WINHTTP_OPTION_CALLBACK

Pobiera wskaźnik do zestawu funkcji wywołania zwrotnego za pomocą funkcji WinHttpSetStatusCallback.

WINHTTP_OPTION_CLIENT_CERT_CONTEXT

Ustawia kontekst certyfikatu klienta. Jeśli aplikacja odbiera ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED, musi wywołać metodę WinHttpSetOption , aby podać certyfikat przed ponowieniem próby wykonania żądania. W ramach przetwarzania tej opcji WinHttp wywołuje element CertDuplicateCertificateContext w kontekście certyfikatu dostarczonego przez obiekt wywołujący, aby kontekst certyfikatu mógł zostać niezależnie zwolniony przez obiekt wywołujący.

Uwaga / Notatka

Aplikacja nie powinna próbować zamknąć magazynu certyfikatów z flagą CERT_CLOSE_STORE_FORCE_FLAG w wywołaniu CertCloseStore w magazynie certyfikatów, z którego został pobrany kontekst certyfikatu. Może wystąpić naruszenie dostępu.

Gdy serwer żąda certyfikatu klienta, WinHttpSendRequest lub WinHttpReceiveResponse zwraca błąd ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED . Jeśli serwer żąda certyfikatu, ale nie wymaga go, aplikacja może określić tę opcję, aby wskazać, że nie ma certyfikatu. Serwer może wybrać inny schemat uwierzytelniania lub zezwolić na anonimowy dostęp do serwera. Aplikacja udostępnia makro WINHTTP_NO_CLIENT_CERT_CONTEXT w parametrze lpBufferwinHttpSetOption , jak pokazano w poniższym przykładzie kodu.

BOOL fRet = WinHttpSetOption(hRequest,
                             WINHTTP_OPTION_CLIENT_CERT_CONTEXT,
                             WINHTTP_NO_CLIENT_CERT_CONTEXT,
                             0);

Jeśli serwer wymaga certyfikatu klienta, może wysłać kod stanu HTTP 403 w odpowiedzi. Aby uzyskać więcej informacji, zobacz opcję WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST .

WINHTTP_OPTION_CLIENT_CERT_ISSUER_LIST

Pobiera strukturę SecPkgContext_IssuerListInfoEx , gdy błąd z winHttpSendRequest lub WinHttpReceiveResponse jest ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED. Lista wystawców w strukturze zawiera listę dopuszczalnych urzędów certyfikacji z serwera. Aplikacja kliencka może filtrować listę urzędu certyfikacji, aby pobrać certyfikat klienta na potrzeby uwierzytelniania SSL.

Alternatywnie, jeśli serwer żąda certyfikatu klienta, ale nie wymaga go, aplikacja może wywołać winHttpSetOption z opcją WINHTTP_OPTION_CLIENT_CERT_CONTEXT . Aby uzyskać więcej informacji, zobacz opcję WINHTTP_OPTION_CLIENT_CERT_CONTEXT .

WINHTTP_OPTION_CODEPAGE

Ustawia stronę kodową używaną do przetwarzania adresu URL (czyli ciągu zapytania). Wartość domyślna to UTF8.

WINHTTP_OPTION_CONFIGURE_PASSPORT_AUTH

Ustawia wartość niepodpisanej długiej liczby całkowitej, która określa, czy jest włączone uwierzytelnianie usługi Passport w uwierzytelnianiu WinHTTP . Wartość może być jedną z następujących wartości:

Termin Opis
WINHTTP_DISABLE_PASSPORT_AUTH Uwierzytelnianie za pomocą usługi Microsoft Passport jest wyłączone. Jest to wartość domyślna.
WINHTTP_DISABLE_PASSPORT_KEYRING Klucz usługi Passport jest wyłączony. Jest to wartość domyślna.
WINHTTP_ENABLE_PASSPORT_AUTH Uwierzytelnianie za pomocą usługi Passport jest włączone.
WINHTTP_ENABLE_PASSPORT_KEYRING Klucz usługi Passport jest włączony.

WINHTTP_OPTION_CONNECT_RETRIES

Ustawia lub pobiera niepodpisaną długą wartość całkowitą zawierającą liczbę prób połączeniawinHTTP z hostem. Usługi HTTP systemu Microsoft Windows (WinHTTP) próbują tylko raz na adres IP (Internet Protocol). Jeśli na przykład próbujesz nawiązać połączenie z hostem wieloadresowym, który ma 10 adresów IP i WINHTTP_OPTION_CONNECT_RETRIES jest ustawiony na 7, usługa WinHTTP próbuje połączyć się tylko z pierwszym siedmioma adresami IP. Biorąc pod uwagę ten sam zestaw 10 adresów IP, jeśli WINHTTP_OPTION_CONNECT_RETRIES jest ustawiony na 20, WinHTTP próbuje każdy z 10 tylko raz. Jeśli próba połączenia nadal kończy się niepowodzeniem po określonej liczbie prób lub jeśli upłynął limit czasu połączenia przed upływem, żądanie zostanie anulowane. Wartość domyślna WINHTTP_OPTION_CONNECT_RETRIES to pięć prób.

WINHTTP_OPTION_CONNECT_TIMEOUT

Ustawia lub pobiera niepodpisaną długą wartość całkowitą zawierającą wartość limitu czasu w milisekundach. Ustawienie tej opcji na nieskończoną (0xFFFFFFFF) spowoduje wyłączenie tego czasomierza.

Jeśli żądanie połączenia TCP trwa dłużej niż ta wartość limitu czasu, żądanie zostanie anulowane. Domyślny limit czasu wynosi 60 sekund. Podczas próby nawiązania połączenia z wieloma adresami IP dla jednego hosta (hosta wieloadresowego) limit czasu jest przeznaczony dla każdego pojedynczego połączenia.

WINHTTP_OPTION_CONNECTION_INFO

Pobiera źródłowy i docelowy adres IP oraz port żądania, które wygenerowało odpowiedź, gdy zwraca wartość WinHttpReceiveResponse . Aplikacja wywołuje winHttpQueryOption z opcją WINHTTP_OPTION_CONNECTION_INFO i udostępnia strukturę WINHTTP_CONNECTION_INFO w parametrze lpBuffer . Aby uzyskać więcej informacji, zobacz WINHTTP_CONNECTION_INFO.

Dotyczy: Windows XP z dodatkiem SP2 lub nowszym; Windows 2003 z dodatkiem SP1 lub nowszym.

WINHTTP_OPTION_CONNECTION_GUID

Oznacz połączenie skojarzone z dojściem żądania WinHTTP z identyfikatorem GUID. Umożliwia to niestandardową kontrolę nad tym, które żądania używają grup połączeń z opcją WINHTTP_OPTION_MATCH_CONNECTION_GUID .

WINHTTP_OPTION_CONNECTION_STATS_V0

Retreives struktury TCP_INFO_v0 dla połączenia bazowego używanego przez żądanie. Zwrócona struktura może zawierać statystyki z poprzednich żądań wysyłanych przez to samo połączenie.

Uwaga / Notatka

Ta opcja została zastąpiona przez WINHTTP_OPTION_CONNECTION_STATS_V1.

WINHTTP_OPTION_CONNECTION_STATS_V1

Retreives struktury TCP_INFO_v1 dla bazowego połączenia używanego przez żądanie. Zwrócona struktura może zawierać statystyki z poprzednich żądań wysyłanych przez to samo połączenie.

WINHTTP_OPTION_CONTEXT_VALUE

Ustawia lub pobiera DWORD_PTR , który zawiera wskaźnik do wartości kontekstu skojarzonej z tym dojściem DO SIECI COSMOSNET . Używana jest wartość przechowywana w buforze, a flaga opcji WINHTTP_OPTION_CONTEXT_VALUE ma przypisaną nową wartość.

WINHTTP_OPTION_DECOMPRESSION

Ustawia DWORD flag, które określają, czy WinHTTP automatycznie dekompresuje treść odpowiedzi przy użyciu skompresowanych kodowań zawartości. WinHTTP ustawi również odpowiedni nagłówek Accept-Encoding, przesłaniając wszystkie dostarczone przez obiekt wywołujący. Obsługiwane wartości to:

Termin Opis
WINHTTP_DECOMPRESSION_FLAG_GZIP Dekompresuj kodowanie zawartości: odpowiedzi gzip.
WINHTTP_DECOMPRESSION_FLAG_DEFLATE Dekompresuj kodowanie zawartości: deflate odpowiedzi.
WINHTTP_DECOMPRESSION_FLAG_ALL Dekompresuj odpowiedzi z dowolnym obsługiwanym kodowaniem zawartości.

Domyślnie usługa WinHTTP będzie dostarczać skompresowane odpowiedzi do obiektu wywołującego niezmodyfikowane.

WINHTTP_OPTION_DISABLE_CERT_CHAIN_BUILDING

Ustawienie tej opcji na dojściu sesji WinHttp umożliwia włączenie/wyłączenie, czy łańcuch certyfikatów serwera jest zbudowany.

WINHTTP_OPTION_DISABLE_FEATURE

Ustawia niepodpisaną długą wartość całkowitą określającą, które funkcje są wyłączone z co najmniej jedną z następujących flag. Należy pamiętać, że ta funkcja powinna być przekazywana tylko do metody WinHttpSetOption na żądaniach po utworzeniu dojścia żądania za pomocą polecenia WinHttpOpenRequest, a przed wysłaniem żądania za pomocą polecenia WinHttpSendRequest.

Termin Opis
WINHTTP_DISABLE_AUTHENTICATION Automatyczne uwierzytelnianie jest wyłączone.
WINHTTP_DISABLE_COOKIES Automatyczne dodawanie nagłówków plików cookie do żądań jest wyłączone. Ponadto zwracane pliki cookie nie są automatycznie dodawane do bazy danych plików cookie. Wyłączenie plików cookie może spowodować niską wydajność uwierzytelniania usługi Passport.
WINHTTP_DISABLE_KEEP_ALIVE Wyłącza semantyka zachowania aktywności dla połączenia. Semantyka zachowania aktywności jest wymagana w przypadku uwierzytelniania MSN, NTLM i innych typów uwierzytelniania.
WINHTTP_DISABLE_REDIRECTS Automatyczne przekierowywanie jest wyłączone podczas wysyłania żądań za pomocą polecenia WinHttpSendRequest. Jeśli automatyczne przekierowywanie jest wyłączone, aplikacja musi zarejestrować funkcję wywołania zwrotnego w celu pomyślnego uwierzytelnienia usługi Passport.

WINHTTP_OPTION_DISABLE_GLOBAL_POOLING

Wyłącza globalne, między sesjami buforowanie. Jest to zalecane rozwiązanie, ponieważ globalne buforowanie między sesjami to starsze zachowanie, które jest domyślnie obsługiwane ze względu na zgodność. Ma to wpływ na późniejsze ustawienie maksymalnej liczby połączeń ręcznie.

WINHTTP_OPTION_DISABLE_PROXY_AUTH_SCHEMES

Wyłącza co najmniej jedną z następujących praktyk uwierzytelniania serwera proxy w sesji WinHTTP, podając OR wszystkie odpowiednie opcje. Są to wszystkie schematy, z wyjątkiem WINHTTP_PROXY_DISABLE_AUTH_LOCAL_SERVICE, które wymusza użycie konta komputera lokalnego podczas wysyłania żądań do sprzężenia zwrotnego lub adresu lokalnego. Zapobiega to wyciekowi poświadczeń systemowych do lokalnych serwerów proxy HTTP.

Termin Opis
WINHTTP_PROXY_DISABLE_SCHEME_BASIC Wyłącza schemat uwierzytelniania podstawowego.
WINHTTP_PROXY_DISABLE_SCHEME_DIGEST Wyłącza schemat uwierzytelniania szyfrowane.
WINHTTP_PROXY_DISABLE_SCHEME_NTLM Wyłącza schemat uwierzytelniania NTLM.
WINHTTP_PROXY_DISABLE_SCHEME_KERBEROS Wyłącza schemat uwierzytelniania Kerberos.
WINHTTP_PROXY_DISABLE_SCHEME_NEGOTIATE Wyłącza schemat uwierzytelniania Negotiate.
WINHTTP_PROXY_DISABLE_AUTH_LOCAL_SERVICE Wymusza użycie konta komputera lokalnego podczas wysyłania żądań do sprzężenia zwrotnego lub lokalnego adresu.

WINHTTP_OPTION_DISABLE_SECURE_PROTOCOL_FALLBACK

Zapobiega ponawianiu próby nawiązania połączenia z niższą wersją protokołu zabezpieczeń w przypadku niepowodzenia początkowego negocjowania protokołu.

WINHTTP_OPTION_DISABLE_STREAM_QUEUE

Zezwala nowym żądaniom na otwarcie dodatkowego połączenia HTTP/2 po osiągnięciu maksymalnego limitu współbieżnego strumienia, zamiast czekać na następny dostępny strumień w istniejącym połączeniu.

WINHTTP_OPTION_ENABLE_FEATURE

Ustawia niepodpisaną wartość długiej liczby całkowitej, która określa funkcje, które są obecnie włączone. Może być jedną z następujących wartości.

Termin Opis
WINHTTP_ENABLE_SSL_REVERT_IMPERSONATION Jeśli to ustawienie jest włączone, winHTTP tymczasowo przywraca personifikację klienta na czas trwania operacji uwierzytelniania certyfikatu SSL. Tę wartość można ustawić tylko na dojściu sesji.
WINHTTP_ENABLE_SSL_REVOCATION Jeśli to ustawienie jest włączone, usługa WinHTTP zezwala na odwoływanie protokołu SSL. Tę wartość można ustawić tylko na dojściu żądania.

WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL

Ustawia maskę bitów DWORD akceptowalnych zaawansowanych wersji HTTP. Dopuszczalne wartości:

Termin Opis
WINHTTP_PROTOCOL_FLAG_HTTP2 (0x1) Włącza protokół HTTP/2 dla żądania.
WINHTTP_PROTOCOL_FLAG_HTTP3 (0x2) Włącza protokół HTTP/3 dla żądania.
Brak (0x0) Ogranicza żądanie do protokołu HTTP/1.1 i wcześniejszego.

Starsze wersje protokołu HTTP (1.1 i wcześniejsze) nie mogą być wyłączone przy użyciu tej opcji. Wartość domyślna to 0x0.

WINHTTP_OPTION_ENABLE_HTTP2_PLUS_CLIENT_CERT

Tę opcję można ustawić na dojściu sesji WinHttp, aby umożliwić WinHttp używanie kontekstu certyfikatu klienta dostarczonego przez obiekt wywołujący, gdy jest używany protokół HTTP/2.

WINHTTP_OPTION_ENABLETRACING

Ustawia wartość BOOL określającą, czy śledzenie jest obecnie włączone. Tę opcję można ustawić tylko na dojściu NULL COSMOSNET. Zobacz również Zbieranie śladów WinHTTP.

WINHTTP_OPTION_ENCODE_EXTRA

Włącza kodowanie procentu adresu URL dla ścieżki i ciągu zapytania.

Alternatywnie możesz zakodować procent przed wywołaniem metody WinHttp.

WINHTTP_OPTION_EXPIRE_CONNECTION

Tę opcję można ustawić tylko na dojściu żądania, który jest nadal aktywny (wysyłanie lub odbieranie). Ustawienie tej opcji spowoduje, że usługa WinHttp przestanie obsługiwać żądania w połączeniu skojarzonym z przekazanym dojściem żądania. Połączenie zostanie zamknięte po zakończeniu obsługi żądania tej opcji. Ta opcja nie bierze żadnych parametrów.

WINHTTP_OPTION_EXTENDED_ERROR

Pobiera niepodpisaną wartość długiej liczby całkowitej zawierającą kod błędu Microsoft Windows Sockets, który został zamapowany na komunikaty o błędach ERROR_WINHTTP_* ostatnio zwrócone w tym kontekście wątku. Wartość NULL można przekazać jako wartość dojścia.

WINHTTP_OPTION_FEATURE_SUPPORTED

Sprawdź, czy podana flaga opcji jest obsługiwana przez tę wersję winHTTP.

WINHTTP_OPTION_FIRST_AVAILABLE_CONNECTION

Domyślnie, gdy usługa WinHttp wysyła żądanie, jeśli nie ma dostępnych połączeń do obsługi żądania, usługa WinHttp podejmie próbę nawiązania nowego połączenia, a żądanie zostanie powiązane z tym nowym połączeniem. Po ustawieniu tej opcji takie żądanie zostanie obsłużone w pierwszym połączeniu, które stanie się dostępne, a niekoniecznie jest ustanawiane.

WINHTTP_OPTION_GLOBAL_PROXY_CREDS

Przyjmuje wskaźnik do struktury WINHTTP_CREDS_EX z parametrem funkcji hInternet ustawionym na wartość NULL. Ta opcja wymaga klucza rejestru HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings! ShareCredsWithWinHttp. Jeśli ten klucz rejestru nie jest ustawiony, winHTTP zwróci błąd ERROR_WINHTTP_INVALID_OPTION. Ten klucz rejestru nie jest domyślnie obecny. Po ustawieniu usługa WinINet wyśle poświadczenia w dół do winHTTP. Za każdym razem, gdy usługa WinHttp otrzymuje wyzwanie uwierzytelniania i jeśli nie ma poświadczeń ustawionych na bieżącym dojściu, będzie używać poświadczeń dostarczonych przez usługę WinINet. Aby udostępniać poświadczenia serwera oprócz poświadczeń serwera proxy, użytkownicy muszą ustawić WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS .

WINHTTP_OPTION_GLOBAL_SERVER_CREDS

Przyjmuje wskaźnik do struktury WINHTTP_CREDS_EX z parametrem funkcji hInternet ustawionym na wartość NULL. Ta opcja wymaga klucza rejestru HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings! ShareCredsWithWinHttp. Jeśli ten klucz rejestru nie jest ustawiony, winHTTP zwróci błąd ERROR_WINHTTP_INVALID_OPTION. Ten klucz rejestru nie jest domyślnie obecny. Po ustawieniu usługa WinINet wyśle poświadczenia w dół do winHTTP. Za każdym razem, gdy usługa WinHttp otrzymuje wyzwanie uwierzytelniania i jeśli nie ma poświadczeń ustawionych na bieżącym dojściu, będzie używać poświadczeń dostarczonych przez usługę WinINet. Aby udostępniać poświadczenia serwera oprócz poświadczeń serwera proxy, użytkownicy muszą ustawić WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS .

WINHTTP_OPTION_HANDLE_TYPE

Pobiera niepodpisaną wartość długości całkowitej, która zawiera typ przekazanego dojścia DO SIECI COSMOSNET . Wartość zwracana może być jedną z następujących wartości:

Termin Opis
WINHTTP_HANDLE_TYPE_CONNECT Uchwyt jest uchwytem połączenia.
WINHTTP_HANDLE_TYPE_REQUEST Dojście jest dojściem żądania.
WINHTTP_HANDLE_TYPE_SESSION Dojście to dojście sesji.

WINHTTP_OPTION_HTTP_PROTOCOL_REQUIRED

Uniemożliwia korzystanie z wersji protokołu innych niż te włączone przez WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL do żądania.

WINHTTP_OPTION_HTTP_PROTOCOL_USED

Pobiera dword wskazujący, która zaawansowana wersja HTTP została użyta w danym żądaniu. Aby uzyskać listę możliwych wartości, zobacz WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL.

WINHTTP_OPTION_HTTP_VERSION

Ustawia lub pobiera strukturę HTTP_VERSION_INFO deklarując obsługiwaną starszą wersję HTTP. Jest to opcja dla całego procesu; użyj wartości NULL dla dojścia.

Uwaga / Notatka

Ta struktura jest prawidłowa dla protokołów HTTP/1.0 i HTTP/1.1. Aby zapoznać się z nowoczesnymi wersjami protokołu HTTP, zobacz WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL i WINHTTP_OPTION_HTTP_PROTOCOL_USED.

WINHTTP_OPTION_HTTP2_KEEPALIVE

Tę opcję można ustawić na dojściu sesji, aby platforma WinHttp używała ramek HTTP/2 PING jako mechanizmu utrzymania aktywności. Osoby wywołujące określają limit czasu w milisekundach, a po braku aktywności w połączeniu dla tego limitu czasu WinHttp rozpocznie wysyłanie ramek HTTP/2 PING. Osoby wywołujące nie mogą ustawić wartości limitu czasu mniejszej niż 5000 milisekund.

WINHTTP_OPTION_HTTP2_PLUS_TRANSFER_ENCODING

Tę opcję można ustawić na dojściu żądania WinHttp, aby kontrolować, jak działa WinHttp, gdy odpowiedź HTTP/2 zawiera nagłówek "Transfer-Encoding". W takim przypadku WinHttp zwróci błąd, jeśli ta opcja ma wartość FALSE.

WINHTTP_OPTION_HTTP2_RECEIVE_WINDOW

Ustaw początkowy rozmiar okna odbierania http/2 strumienia i próg wysyłania aktualizacji okien przy użyciu struktury WINHTTP_HTTP2_RECEIVE_WINDOW .

WINHTTP_OPTION_HTTP3_HANDSHAKE_TIMEOUT

Używa buforu do ustawiania limitu czasu uzgadniania HTTP/3 w milisekundach jako PDWORD.

WINHTTP_OPTION_HTTP3_INITIAL_RTT

Konfiguruje początkowy protokół RTT w milisekundach używanych przez msquic.

WINHTTP_OPTION_HTTP3_KEEPALIVE

Włącza semantyka zachowania aktywności dla połączenia. Używa buforu do ustawiania limitu czasu utrzymania aktywności w milisekundach jako PDWORD.

WINHTTP_OPTION_HTTP3_STREAM_ERROR_CODE

Pobiera błąd podany przez serwer w strumieniu HTTP/3 używanym do wysyłania żądania.

WINHTTP_OPTION_IGNORE_CERT_REVOCATION_OFFLINE

Umożliwia bezpieczne połączenia z użyciem certyfikatów zabezpieczeń, dla których nie można pobrać listy odwołania certyfikatów.

WINHTTP_OPTION_IPV6_FAST_FALLBACK

Włącza szybki powrót IPv6 (Happyer Eyeballs) dla połączenia. To zachowanie jest podobne do zachowania Happy Eyeballs opisanego w RFC 6555 w celu poprawy czasu połączenia w sieciach, w których protokół IPv6 jest zawodny.

  • Jeśli adresy IPv6 i IPv4 zostaną rozpoznane dla danego hosta, usługa WinHttp rozpocznie się od nawiązania połączenia z pierwszym rozpoznanym adresem IPv6 z krótkim limitem czasu (300 ms).
  • Jeśli to połączenie nie powiedzie się, winHttp podejmie próbę nawiązania połączenia z pierwszym rozpoznanymi adresami IPv4 z limitem czasu standardowego.
  • Jeśli drugie połączenie zakończy się niepowodzeniem, usługa WinHttp ponowi próbę pierwszego rozpoznania adresu IPv6 ze standardowym limitem czasu.
  • Jeśli trzecie połączenie nie powiedzie się, WinHttp powróci do domyślnego zachowania dla pozostałych adresów, próbując nawiązać połączenie z każdym z nich ze standardowym limitem czasu, dopóki połączenie nie zostanie nawiązane lub nie pozostanie żadnych adresów.

WINHTTP_OPTION_IS_PROXY_CONNECT_RESPONSE

Pobiera, czy można pobrać odpowiedź return connect serwera proxy.

WINHTTP_OPTION_MATCH_CONNECTION_GUID

Pobiera WINHTTP_MATCH_CONNECTION_GUID struktury , aby poinformować WinHTTP o obsłużeniu żądania w pasującym połączeniu. Jeśli WINHTTP_MATCH_CONNECTION_GUID_FLAG_REQUIRED jest ustawiona, można używać tylko połączeń z pasującym identyfikatorem GUID. W przeciwnym razie można używać połączeń z pasującymi identyfikatorami GUID i połączeniami, które nie są oznaczone żadnym identyfikatorem GUID.

WINHTTP_OPTION_MAX_CONNS_PER_1_0_SERVER

Ustawia lub pobiera niepodpisaną długą wartość całkowitą zawierającą maksymalną liczbę połączeń dozwolonych na serwer HTTP/1.0. Wartość domyślna to INFINITE.

Dotyczy: Windows Vista z dodatkiem SP1 lub nowszym; System Windows Server 2008 lub nowszy.

WINHTTP_OPTION_MAX_CONNS_PER_SERVER

Ustawia lub pobiera niepodpisaną wartość liczb całkowitych, która zawiera maksymalną dozwoloną liczbę połączeń na serwer. Wartość domyślna to INFINITE.

Gdy ta opcja jest ustawiona na zero, WinHTTP ustawia limit liczby połączeń na 2.

WINHTTP_OPTION_MAX_HTTP_AUTOMATIC_REDIRECTS

Ustawia maksymalną liczbę przekierowań, które następuje po winHTTP; wartość domyślna to 10. Ten limit uniemożliwia nieautoryzowane lokacje wstrzymania klienta WinHTTP po dużej liczbie przekierowań.

Dotyczy: Windows XP z dodatkiem SP1 lub nowszym; System Windows 2000 z dodatkiem SP3 lub nowszym.

WINHTTP_OPTION_MAX_HTTP_STATUS_CONTINUE

Maksymalna liczba odpowiedzi kodów stanu informacji 100–199 ignorowanych przed zwróceniem końcowego kodu stanu do klienta WinHTTP. Informacje o kodach stanu 100–199 mogą być wysyłane przez serwer przed ostatecznym kodem stanu i zostały opisane w specyfikacji http/1.1 (aby uzyskać więcej informacji, zobacz RFC 2616). Wartość domyślna to 10.

Dotyczy: Windows XP z dodatkiem SP1 lub nowszym; System Windows 2000 z dodatkiem SP3 lub nowszym.

WINHTTP_OPTION_MAX_RESPONSE_DRAIN_SIZE

Ograniczenie ilości danych opróżnionych z odpowiedzi w celu ponownego użycia połączenia określonego w bajtach. Wartość domyślna to 1 MB.

Dotyczy: Windows XP z dodatkiem SP1 lub nowszym; System Windows 2000 z dodatkiem SP3 lub nowszym.

WINHTTP_OPTION_MAX_RESPONSE_HEADER_SIZE

Granica ustawiona na maksymalny rozmiar części nagłówka odpowiedzi serwera określonej w bajtach. Ta granica chroni klienta przed nieautoryzowanym serwerem próbującym zatrzymać klienta, wysyłając odpowiedź z nieskończoną ilością danych nagłówka. Wartość domyślna to 64 KB.

Dotyczy: Windows XP z dodatkiem SP1 lub nowszym; System Windows 2000 z dodatkiem SP3 lub nowszym.

WINHTTP_OPTION_PARENT_HANDLE

Pobiera dojście nadrzędne do tego dojścia.

WINHTTP_OPTION_PASSPORT_COBRANDING_TEXT

Pobiera ciąg zawierający tekst cobranding dostarczony przez serwer logowania usługi Passport. Ta opcja powinna zostać pobrana natychmiast po odpowiedzi serwera logowania za pomocą kodu stanu 401. Aplikacja powinna przekazać rozmiar buforu w bajtach, który jest wystarczająco duży, aby przechowywać zwrócony ciąg.

WINHTTP_OPTION_PASSPORT_COBRANDING_URL

Pobiera ciąg zawierający adres URL grafiki cobranding dostarczonej przez serwer logowania usługi Passport. Ta opcja powinna zostać pobrana natychmiast po odpowiedzi serwera logowania za pomocą kodu stanu 401. Aplikacja powinna przekazać rozmiar buforu w bajtach, który jest wystarczająco duży, aby przechowywać zwrócony ciąg.

WINHTTP_OPTION_PASSPORT_RETURN_URL

Ustawia opcję tylko do odczytu na dojściu żądania, który pobiera adres URL powrotu usługi Passport.

WINHTTP_OPTION_PASSPORT_SIGN_OUT

Ustawia opcję na dojściu sesji, aby wylogować się z wszelkich logowań usługi Passport. Aplikacja powinna przekazać adres URL powrotu usługi Passport pobrany za pomocą WINHTTP_OPTION_PASSPORT_RETURN_URL. Wszystkie pliki cookie związane z zwracanym adresem URL są czyszczone.

WINHTTP_OPTION_PASSWORD

Ustawia lub pobiera wartość ciągu zawierającą hasło skojarzone z uchwytem żądania.

WINHTTP_OPTION_PROXY

Ustawia lub pobiera strukturę WINHTTP_PROXY_INFO zawierającą dane serwera proxy w istniejącym dojściu sesji lub dojściu żądań. Podczas pobierania danych serwera proxy aplikacja musi zwolnić ciągi lpszProxy i lpszProxyBypass zawarte w tej strukturze (jeśli nie mają wartości NULL) przy użyciu funkcji GlobalFree. Aplikacja może wykonywać zapytania dotyczące globalnych danych serwera proxy (domyślnego serwera proxy), przekazując dojście NULL .

WINHTTP_OPTION_PROXY_PASSWORD

Ustawia lub pobiera wartość ciągu zawierającą hasło używane do uzyskiwania dostępu do serwera proxy.

WINHTTP_OPTION_PROXY_SPN_USED

Pobiera główną nazwę serwera proxy podaną przez usługę WinHTTP do interfejsu SSPI podczas uwierzytelniania. Ta wartość ciągu jest używana do przekazywania do elementu SspiPromptForCredentials po niepowodzeniu uwierzytelniania.

WINHTTP_OPTION_PROXY_USERNAME

Ustawia lub pobiera wartość ciągu zawierającą nazwę użytkownika używaną do uzyskiwania dostępu do serwera proxy.

WINHTTP_OPTION_QUIC_STATS

Pobiera strukturę QUIC_STATISTICS zawierającą informacje o połączeniu, takie jak RTT i bajty wysłane i odebrane.

WINHTTP_OPTION_READ_BUFFER_SIZE

Ta opcja jest przestarzała; nie ma żadnego efektu.

WINHTTP_OPTION_RECEIVE_PROXY_CONNECT_RESPONSE

Określa, czy można pobrać jednostkę odpowiedzi serwera proxy. Ta opcja jest domyślnie wyłączona.

WINHTTP_OPTION_RECEIVE_RESPONSE_TIMEOUT

Ustawia lub pobiera niepodpisaną długą wartość całkowitą zawierającą wartość limitu czasu (w milisekundach), aby poczekać na odebranie wszystkich nagłówków odpowiedzi do żądania. Jeśli usługa WinHTTP nie otrzyma wszystkich nagłówków w tym przedziale czasu, żądanie zostanie anulowane. Domyślna wartość limitu czasu to 90 sekund.

Ten limit czasu jest sprawdzany tylko wtedy, gdy dane są odbierane z gniazda. W związku z tym po wygaśnięciu limitu czasu aplikacja kliencka zostanie powiadomiona, dopóki więcej danych nie dotrze z serwera. Jeśli żadne dane nie docierają z serwera, opóźnienie między wygaśnięciem limitu czasu i powiadomieniem aplikacji klienckiej może być tak duże, jak wartość limitu czasu ustawiona przy użyciu parametru dwReceiveTimeout funkcji WinHttpSetTimeouts .

WINHTTP_OPTION_RECEIVE_TIMEOUT

Ustawia lub pobiera niepodpisaną długą wartość całkowitą zawierającą wartość limitu czasu (w milisekundach), aby otrzymać częściową odpowiedź na żądanie lub odczytać niektóre dane. Jeśli odpowiedź trwa dłużej niż ta wartość limitu czasu, żądanie zostanie anulowane. Domyślna wartość limitu czasu to 30 sekund.

WINHTTP_OPTION_REDIRECT_POLICY

Ustawia zachowanie winHTTP dotyczące obsługi kodu stanu przekierowania HTTP 30x. Tę opcję można ustawić w sesji lub żądać dojścia do jednej z następujących wartości:

Termin Opis
WINHTTP_OPTION_REDIRECT_POLICY_ALWAYS Wszystkie przekierowania są wykonywane automatycznie.
WINHTTP_OPTION_REDIRECT_POLICY_DISALLOW_HTTPS_TO_HTTP Wszystkie przekierowania są obserwowane, z wyjątkiem tych, które pochodzą z bezpiecznego adresu URL (https) do niezabezpieczonego adresu URL (http). Jest to ustawienie domyślne.
WINHTTP_OPTION_REDIRECT_POLICY_NEVER Przekierowania nigdy nie są obserwowane. Stan 30x jest zwracany do aplikacji.

WINHTTP_OPTION_REJECT_USERPWD_IN_URL

Odrzuca adresy URL zawierające nazwę użytkownika i hasło. Ta opcja odrzuca również adresy URL zawierające semantyka username:password , nawet jeśli nie określono nazwy użytkownika lub hasła. Na przykład "u:p@hostname", ":@hostname", "u:@hostname" i ":p@nazwa hosta" będą oznaczone jako nieprawidłowe. Jeśli do funkcji zostanie przekazany nieprawidłowy adres URL, zwraca ERROR_WINHTTP_INVALID_URL. Ta opcja jest domyślnie wyłączona.

WINHTTP_OPTION_REQUEST_ANNOTATION

Włącza pobieranie i ustawianie adnotacji żądania dla podanej nazwy adnotacji. Dzięki niemu obiekt wywołujący może dołączyć ciąg do żądania późniejszego pobrania w celu zidentyfikowania żądań przy użyciu dowolnej logiki niestandardowej, którą obiekt wywołujący uzna za przydatny.

WINHTTP_OPTION_REQUEST_PRIORITY

Ta opcja jest przestarzała; nie ma żadnego efektu.

WINHTTP_OPTION_REQUEST_STATS

Retreives statystyki dla żądania. Aby uzyskać listę dostępnych statystyk, zobacz WINHTTP_REQUEST_STATS.

WINHTTP_OPTION_REQUEST_TIMES

Retreives informacji o chronometrażu dla żądania. Aby uzyskać listę dostępnych chronometrażu, zobacz WINHTTP_REQUEST_TIMES.

WINHTTP_OPTION_REQUIRE_STREAM_END

Ta opcja informuje WinHttp o ignorowaniu nagłówków odpowiedzi "Content-Length" i kontynuowaniu odbierania w strumieniu do momentu odebrania flagi END_STREAM.

WINHTTP_OPTION_RESOLUTION_HOSTNAME

Tę opcję można ustawić na dojściu żądania WinHttp przed wysłaniem. W przypadku ustawienia WinHttp użyje ciągu dostarczonego przez obiekt wywołujący jako nazwy hosta na potrzeby rozpoznawania nazw DNS.

WINHTTP_OPTION_RESOLVE_TIMEOUT

Ustawia lub pobiera niepodpisaną długą wartość całkowitą zawierającą wartość limitu czasu (w milisekundach), aby rozpoznać nazwę hosta. Domyślna wartość limitu czasu to NIESKOŃCZONY. Jeśli określono wartość inną niż domyślna, istnieje obciążenie związane z tworzeniem jednego wątku na rozpoznawanie nazw.

WINHTTP_OPTION_REVERT_IMPERSONATION_SERVER_CERT

Przywraca personifikację wątku podczas tworzenia łańcucha certyfikatów serwera, wymuszając zamiast tego użycie tokenu procesu.

WINHTTP_OPTION_SECURE_PROTOCOLS

Ustawia niepodpisaną wartość liczb całkowitych, która określa, które protokoły Secure (HTTPS) są akceptowalne. Wartość domyślna tego ustawienia różni się w zależności od wersji systemu operacyjnego i może mieć wpływ na zainstalowane aktualizacje.

  • Windows 11. Domyślnie są włączone tylko protokoły TLS1.2 i TLS1.3.
  • Windows 10 i Windows 8.1. Domyślnie są włączone tylko protokoły SSL3, TLS1.0, TLS1.1 i TLS1.2.
  • Windows 8 i Windows 7. Domyślnie są włączone tylko protokoły SSL3 i TLS1.

Wartość może być kombinacją co najmniej jednej z następujących wartości.

Termin Opis
WINHTTP_FLAG_SECURE_PROTOCOL_ALL Można użyć protokołów Secure Sockets Layer (SSL) 2.0, SSL 3.0 i Transport Layer Security (TLS) 1.0.
WINHTTP_FLAG_SECURE_PROTOCOL_SSL2 Można użyć protokołu SSL 2.0.
WINHTTP_FLAG_SECURE_PROTOCOL_SSL3 Można użyć protokołu SSL 3.0.
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1 Można użyć protokołu TLS 1.0.
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_1 Można użyć protokołu TLS 1.1.
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_2 Można użyć protokołu TLS 1.2.
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_3 Można użyć protokołu TLS 1.3.

Jeśli musisz włączyć obsługę nowszych protokołów, ale nie możesz ponownie skompilować aplikacji, aby użyć odpowiednich wartości WINHTTP_OPTION_SECURE_PROTOCOLS, możesz zamiast tego dodać DefaultSecureProtocols wpis rejestru. Ten wpis rejestru umożliwia określenie, które bezpieczne protokoły mają być używane, gdy opcja WINHTTP_OPTION_SECURE_PROTOCOLS nie jest ustawiona.

Ważne

Poniższe instrukcje obejmują modyfikowanie rejestru. Mogą jednak wystąpić poważne problemy, jeśli nieprawidłowo zmodyfikujesz rejestr. W związku z tym należy dokładnie postępować zgodnie z tymi instrukcjami. Aby uzyskać dodatkową ochronę, należy utworzyć kopię zapasową rejestru przed jego zmodyfikowaniem. Następnie możesz przywrócić rejestr, jeśli wystąpi problem. Aby uzyskać więcej informacji na temat tworzenia kopii zapasowej i przywracania rejestru, zobacz Jak utworzyć kopię zapasową i przywrócić rejestr w systemie Windows.

Jeśli aplikacja nie wywołuje winHttpSetOption(WINHTTP_OPTION_SECURE_PROTOCOLS), system sprawdza DefaultSecureProtocols wpis rejestru i, jeśli jest obecny, zastępuje istniejące wartości domyślne systemu operacyjnego protokołami określonymi w wpisie DefaultSecureProtocols rejestru. Określone protokoły WinHTTP mogą zostać unieważnione przez ustawienia konfiguracji protokołu Secure Channel (Schannel), które mogą wyłączać protokoły.

Wpis rejestru można dodać DefaultSecureProtocols w następującej ścieżce:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp

Na komputerach opartych na architekturze x64 należy również dodać DefaultSecureProtocols do ścieżki Wow6432Node :

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp

Wartość rejestru jest mapą bitową DWORD. Wartość do użycia jest określana przez dodanie wartości odpowiadających żądanym protokołom.

Wartość DefaultSecureProtocols Włączono protokół
0x00000008 Domyślnie włącz protokół SSL 2.0
0x00000020 Domyślnie włącz protokół SSL 3.0
0x00000080 Domyślnie włącz protokół TLS 1.0
0x00000200 Domyślnie włącz protokół TLS 1.1
0x00000800 Domyślnie włącz protokół TLS 1.2
0x00002000 Domyślnie włącz protokół TLS 1.3

Jeśli na przykład chcesz zastąpić wartości domyślne dla WINHTTP_OPTION_SECURE_PROTOCOLS , aby określić protokoły TLS 1.1 i TLS 1.2. W takim przypadku weź wartość protokołu TLS 1.1 (0x00000200) i wartość protokołu TLS 1.2 (0x00000800), dodaj je razem w kalkulatorze (w trybie programisty), a wynikowa wartość rejestru będzie 0x00000A00.

WINHTTP_OPTION_SECURITY_CERTIFICATE_STRUCT

Pobiera certyfikat dla serwera SSL/TLS do struktury WINHTTP_CERTIFICATE_INFO . Aplikacja musi zwolnić członków lpszSubjectInfo i lpszIssuerInfo z localfree.

WINHTTP_OPTION_SECURITY_FLAGS

Ustawia lub pobiera niepodpisaną długą wartość całkowitą zawierającą flagi zabezpieczeń dla uchwytu. Może to być kombinacja tych wartości:

Termin Opis
SECURITY_FLAG_IGNORE_CERT_CN_INVALID Zezwala na nieprawidłową nazwę pospolitą w certyfikacie; oznacza to, że nazwa serwera określona przez aplikację nie jest zgodna z nazwą pospolitą w certyfikacie. Jeśli ta flaga jest ustawiona, aplikacja nie otrzyma WINHTTP_CALLBACK_STATUS_FLAG_CERT_CN_INVALID wywołania zwrotnego.
SECURITY_FLAG_IGNORE_CERT_DATE_INVALID Zezwala na nieprawidłową datę certyfikatu, czyli wygasły lub jeszcze nie obowiązującą. Jeśli ta flaga jest ustawiona, aplikacja nie otrzyma WINHTTP_CALLBACK_STATUS_FLAG_CERT_DATE_INVALID wywołania zwrotnego.
SECURITY_FLAG_IGNORE_UNKNOWN_CA Zezwala na nieprawidłowy urząd certyfikacji. Jeśli ta flaga jest ustawiona, aplikacja nie otrzyma WINHTTP_CALLBACK_STATUS_FLAG_INVALID_CA wywołania zwrotnego.
SECURITY_FLAG_IGNORE_CERT_WRONG_USAGE Umożliwia ustanowienie tożsamości serwera przy użyciu certyfikatu innego niż serwer (na przykład certyfikatu klienta).
SECURITY_FLAG_IGNORE_WEAK_SIGNATURE Umożliwia ignorowanie słabego podpisu.
Ta flaga jest dostępna w aktualizacji zbiorczej dla każdego systemu operacyjnego począwszy od systemów Windows 7 i Windows Server 2008 R2.
SECURITY_FLAG_SECURE Używa bezpiecznych transferów. Jest to zwracane tylko w wywołaniu metody WinHttpQueryOption.
SECURITY_FLAG_STRENGTH_MEDIUM Używa szyfrowania średniego (56-bitowego). Jest to zwracane tylko w wywołaniu metody WinHttpQueryOption.
SECURITY_FLAG_STRENGTH_STRONG Używa silnego (128-bitowego) szyfrowania. Jest to zwracane tylko w wywołaniu metody WinHttpQueryOption.
SECURITY_FLAG_STRENGTH_WEAK Używa słabego (40-bitowego) szyfrowania. Jest to zwracane tylko w wywołaniu metody WinHttpQueryOption.

WINHTTP_OPTION_SECURITY_INFO

Retreives połączenia SChannel i informacji szyfrowania dla żądania.

WINHTTP_OPTION_SECURITY_KEY_BITNESS

Pobiera niepodpisaną wartość długiej liczby całkowitej, która zawiera siłę szyfrowania klucza szyfrowania. Większa liczba wskazuje na silniejsze szyfrowanie siły szyfrowania.

WINHTTP_OPTION_SEND_TIMEOUT

Ustawia lub pobiera niepodpisaną długą wartość całkowitą zawierającą wartość limitu czasu (w milisekundach), aby wysłać żądanie lub zapisać dane. Jeśli wysłanie żądania trwa dłużej niż limit czasu, operacja wysyłania zostanie anulowana. Domyślny limit czasu to 30 sekund.

WINHTTP_OPTION_SERVER_CBT

Pobiera wskaźnik do SecPkgContext_Bindings struktury, która określa token powiązania kanału (CBT).

Token powiązania kanału jest właściwością bezpiecznego kanału transportu i służy do powiązania kanału uwierzytelniania z bezpiecznym kanałem transportu. Ten token można uzyskać tylko za pomocą tej opcji po nawiązaniu połączenia SSL.

Uwaga / Notatka

Przekazanie tej opcji i wartości null dla lpBuffer do WinHttpQueryOption zwróci ERROR_INSUFFICIENT_BUFFER i wymagany rozmiar bajtu dla buforu w parametrze lpdwBufferLength . Ta zwrócona wartość rozmiaru buforu może zostać przekazana w kolejnym wywołaniu zapytania dotyczącego tokenu powiązania kanału. Te kroki są niezbędne podczas obsługi WINHTTP_CALLBACK_STATUS_REQUEST, jeśli chcesz zmodyfikować nagłówki żądań na podstawie tokenu powiązania kanału. Należy pamiętać, że systemy Windows XP i Vista nie obsługują modyfikowania nagłówków żądań podczas tego wywołania zwrotnego.

WINHTTP_OPTION_SERVER_CERT_CHAIN_CONTEXT

Pobiera kontekst łańcucha certyfikacji serwera. WINHTTP_OPTION_SERVER_CERT_CHAIN_CONTEXT można przekazać w celu uzyskania zduplikowanego wskaźnika do CERT_CHAIN_CONTEXT dla łańcucha certyfikatów serwera odebranego podczas wynegocjowanego połączenia SSL. Klient musi wywołać element CertFreeCertificateContext na zwróconym wskaźniku PCCERT_CONTEXT wypełnionym w buforze.

WINHTTP_OPTION_SERVER_CERT_CONTEXT

Pobiera kontekst certyfikacji serwera. WINHTTP_OPTION_SERVER_CERT_CONTEXT można przekazać, aby uzyskać zduplikowany wskaźnik do kontekstu certyfikatu certyfikatu certyfikatu serwera odebranego podczas wynegocjowanego połączenia SSL. Klient musi wywołać element CertFreeCertificateContext na zwróconym wskaźniku PCCERT_CONTEXT wypełnionym w buforze.

WINHTTP_OPTION_SERVER_SPN_USED

Pobiera główną nazwę serwera, która winHTTP została dostarczona do interfejsu SSPI podczas uwierzytelniania. Tę wartość ciągu można przekazać do elementu SspiPromptForCredentials po niepowodzeniu uwierzytelniania.

WINHTTP_OPTION_SPN

Dołącza lub usuwa numer portu serwera, gdy nazwa SPN (nazwa główna usługi) jest tworzona na potrzeby uwierzytelniania Kerberos lub Negotiate Kerberos. Ta flaga jest jedną z następujących wartości:

Termin Opis
WINHTTP_DISABLE_SPN_SERVER_PORT Usuwa numer portu serwera.
WINHTTP_ENABLE_SPN_SERVER_PORT Zawiera numer portu serwera.

WINHTTP_OPTION_STREAM_ERROR_CODE

Ta opcja może być odpytywana na dojściu żądania WinHttp i zwróci kod błędu wskazany przez ramkę RST_STREAM odebraną na strumieniu HTTP.

WINHTTP_OPTION_TCP_FAST_OPEN

Włącza protokół TCP Fast Open dla połączenia.

WINHTTP_OPTION_TCP_KEEPALIVE

Tę opcję można ustawić na dojściu sesji WinHttp, aby włączyć zachowanie utrzymywania aktywności protokołu TCP w bazowym gniazdie. Przyjmuje tcp_keepalive struktury.

WINHTTP_OPTION_TLS_FALSE_START

Włącza protokół TLS False Start dla połączenia.

WINHTTP_OPTION_TCP_PRIORITY_STATUS

Wykonaj zapytanie o sugerowany priorytet zestawu gniazd TCP przy użyciu WINHTTP_OPTION_TCP_PRIORITY_HINT. Aby uzyskać więcej informacji, zobacz dokumentację SIO_SET_PRIORITY_HINT .

WINHTTP_OPTION_TLS_PROTOCOL_INSECURE_FALLBACK

Tę opcję można ustawić na dojściu sesji WinHttp w celu kontrolowania, czy powrót do protokołu TLS 1.0 jest dozwolony, jeśli występuje błąd uzgadniania PROTOKOŁU TLS z nowszą wersją protokołu.

WINHTTP_OPTION_UNLOAD_NOTIFY_EVENT

Przyjmuje zdarzenie, które zostanie ustawione po zakończeniu ostatniego wywołania zwrotnego dla określonej sesji. Ta flaga musi być używana w dojściu sesji. Nie można zamknąć zdarzenia, dopóki nie zostanie ono ustawione przez winHTTP.

WINHTTP_OPTION_UNSAFE_HEADER_PARSING

Ta opcja jest zarezerwowana do użytku wewnętrznego i nie powinna być wywoływana.

WINHTTP_OPTION_UPGRADE_TO_WEB_SOCKET

Nakazuje stosowi rozpoczęcie procesu uzgadniania protokołu WebSocket za pomocą polecenia WinHttpSendRequest. Ta opcja nie przyjmuje żadnych parametrów.

WINHTTP_OPTION_URL

Pobiera wartość ciągu zawierającą pełny adres URL pobranego zasobu. Jeśli oryginalny adres URL zawierał dodatkowe dane, takie jak ciągi wyszukiwania lub kotwice, lub jeśli wywołanie zostało przekierowane, zwrócony adres URL różni się od oryginalnego. Aplikacja powinna przekazać bufor o rozmiarze w bajtach, który jest wystarczająco duży, aby przechowywać zwrócony adres URL w szerokim znaku.

WINHTTP_OPTION_USE_GLOBAL_SERVER_CREDENTIALS

Przyjmuje wartość LOGICZNĄ i można ustawić tylko dojście sesji. Będzie ona propagowana tylko w dół do obsługi utworzonych na podstawie dojścia sesji po ustawieniu opcji. Jeśli wartość TRUE, ta opcja powoduje, że w ostateczności użycie poświadczeń serwera globalnego, które zostały wypchnięte z systemu WinInet. Wartość domyślna dla tej opcji to FALSE. Ta opcja wymaga klucza rejestru HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings! ShareCredsWithWinHttp. Ten klucz rejestru nie jest domyślnie obecny. Po ustawieniu usługa WinINet wyśle poświadczenia w dół do winHTTP. Za każdym razem, gdy usługa WinHttp otrzymuje wyzwanie uwierzytelniania i jeśli nie ma poświadczeń ustawionych na bieżącym dojściu, będzie używać poświadczeń dostarczonych przez usługę WinINet.

WINHTTP_OPTION_USE_SESSION_SCH_CRED

Umożliwia ustawienie pojedynczego poświadczenia domyślnie używanego dla wszystkich punktów końcowych w sesji zamiast poświadczeń domyślnych dla poszczególnych punktów końcowych. Może to poprawić wydajność, zmniejszając obciążenie związane z zarządzaniem poświadczeniami. Należy pamiętać, że to domyślne poświadczenie nie będzie miało wpływu, gdy zostanie jawnie udostępniony certyfikat klienta.

WINHTTP_OPTION_USER_AGENT

Ustawia lub pobiera ciąg agenta użytkownika na dojściach dostarczonych przez winHttpOpen i używany w kolejnych funkcjach WinHttpSendRequest , o ile nie jest on zastępowany przez nagłówek dodany przez WinHttpAddRequestHeaders lub WinHttpSendRequest. Podczas pobierania agenta użytkownika aplikacja powinna przekazać bufor o rozmiarze w bajtach, który jest wystarczająco duży, aby przechowywać zwrócony adres URL w szerokim znaku. Podczas ustawiania agenta użytkownika rozmiar buforu jest długością ciągu w postaci znaków oraz terminatorem NULL .

WINHTTP_OPTION_USERNAME

Ustawia lub pobiera ciąg zawierający nazwę użytkownika.

WINHTTP_OPTION_WEB_SOCKET_CLOSE_TIMEOUT

Ustawia czas w milisekundach, który WinHttpWebSocketClose powinien czekać, aby zakończyć uzgadnianie zamknięcia. Wartość domyślna to 10 sekund.

WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL

Ustawia interwał (w milisekundach), aby wysyłać pakiet keep-alive za pośrednictwem połączenia. Domyślny interwał to 30000 (30 sekund). Minimalny interwał to 15000 (15 sekund). Ustawienie wartości niższej niż 15000 zostanie zwrócone przy użyciu polecenia WinHttpSetOption z ERROR_INVALID_PARAMETER.

Uwaga / Notatka

Wartość domyślna dla WINHTTP_OPTION_WEB_SOCKET_KEEPALIVE_INTERVAL jest odczytywana z HKLM:\SOFTWARE\Microsoft\WebSocket\KeepaliveInterval. Jeśli wartość nie zostanie ustawiona, zostanie użyta wartość domyślna 30000. Nie można mieć mniejszego interwału utrzymania niż 15000 milisekund.

WINHTTP_OPTION_WEB_SOCKET_RECEIVE_BUFFER_SIZE

Ustawia lub pobiera dword, który określa rozmiar buforu odbierania, który ma być używany w połączeniach protokołu WebSocket.

WINHTTP_OPTION_WEB_SOCKET_SEND_BUFFER_SIZE

Ustawia lub pobiera dword, który określa rozmiar buforu wysyłania, który ma być używany w połączeniach protokołu WebSocket.

WINHTTP_OPTION_WORKER_THREAD_COUNT

Ustawia niepodpisaną długą wartość całkowitą określającą liczbę wątków roboczych, których pula wątków powinna używać do uzupełniania asynchronicznego. Wartość domyślna tej opcji to zero, która określa, że liczba wątków roboczych jest równa liczbie procesorów CPU w systemie. Tę opcję można ustawić tylko na dojściu NULL COSMOSNET przed wystąpieniem operacji asynchronicznej. Tę opcję można ustawić tylko raz.

Dotyczy: Windows 7 i nowsze; Windows Server 2008 R2 lub nowszy.

WINHTTP_OPTION_WRITE_BUFFER_SIZE

Ta opcja jest przestarzała; nie ma żadnego efektu.

Uwagi

W poniższej tabeli wymieniono flagi opcji, określając dojścia, na które mogą działać, czy można wykonywać zapytania i ustawiać, oraz używany typ danych. Znak "X" wskazuje, że flaga opcji jest prawidłowa do użycia z funkcją lub uchwytem, podczas gdy "-" określa, że flaga opcji jest nieprawidłowa.

Próba ustawienia lub kwerendy flagi opcji w wersji systemu Windows, w której nie jest obsługiwana, spowoduje ERROR_WINHTTP_INVALID_OPTION.

Flaga opcji i typ danych Uchwyt sesji Obsługa żądań Opcja kwerendy Opcja SET Minimalna wersja systemu Windows
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 w wersji 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 w wersji 1903
WINHTTP_OPTION_CONNECTION_STATS_V1
TCP_INFO_v1
- X X - Windows 10 w wersji 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 w wersji 21H1
WINHTTP_OPTION_DISABLE_FEATURE
DWORD
- X - X -
WINHTTP_OPTION_DISABLE_SECURE_PROTOCOL_FALLBACK
BOOL
X - - X Windows 10 w wersji 1903
WINHTTP_OPTION_DISABLE_STREAM_QUEUE
BOOL
X X - X Windows 10 w wersji 1809
WINHTTP_OPTION_ENABLE_FEATURE
DWORD
* * - X -
WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL
DWORD
X X - X Windows 10 w wersji 1607
WINHTTP_OPTION_ENABLE_HTTP2_PLUS_CLIENT_CERT_CONTEXT
BOOL
X - - X Windows 10 w wersji 21H1
WINHTTP_OPTION_ENABLETRACING
DWORD
- - X X -
WINHTTP_OPTION_ENCODE_EXTRA
BOOL
X X - X Windows 10 w wersji 1803
WINHTTP_OPTION_EXPIRE_CONNECTION
N/A
- X - X Windows 10 w wersji 1903
WINHTTP_OPTION_EXTENDED_ERROR
DWORD
X X X - -
WINHTTP_OPTION_FIRST_AVAILABLE_CONNECTION
BOOL
X - - X Windows 10 w wersji 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 w wersji 1903
WINHTTP_OPTION_HTTP_PROTOCOL_USED
DWORD
- X X - Windows 10 w wersji 1607
WINHTTP_OPTION_HTTP_VERSION
HTTP_VERSION_INFO
X X X X -
WINHTTP_OPTION_HTTP2_KEEPALIVE
DWORD
X - - X Windows 10 w wersji 21H1
WINHTTP_OPTION_HTTP2_PLUS_TRANSFER_ENCODING
BOOL
X X - X Windows 10 w wersji 21H1
WINHTTP_OPTION_IGNORE_CERT_REVOCATION_OFFLINE
BOOL
- X - X Windows 10 w wersji 2004
WINHTTP_OPTION_IPV6_FAST_FALLBACK
BOOL
X - - X Windows 10 w wersji 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
SIEĆ ZAPLECZA
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 w wersji 1903
WINHTTP_OPTION_REQUEST_TIMES
WINHTTP_REQUEST_TIMES
- X X - Windows 10 w wersji 1903
WINHTTP_OPTION_REQUIRE_STREAM_END
BOOL
X X - X Windows 10 w wersji 21H1
WINHTTP_OPTION_RESOLUTION_HOSTNAME
LPWSTR
- X - X Windows 10 w wersji 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 w wersji 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 w wersji 2004
WINHTTP_OPTION_SERVER_CERT_CONTEXT
KONTEKST CERTYFIKATU
- 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 w wersji 21H1
WINHTTP_OPTION_TCP_FAST_OPEN
BOOL
X - - X Windows 10 w wersji 2004
WINHTTP_OPTION_TCP_KEEPALIVE
tcp_keepalive
X - - X Windows 10 w wersji 2004
WINHTTP_OPTION_TLS_FALSE_START
BOOL
X - - X Windows 10 w wersji 2004
WINHTTP_OPTION_TLS_PROTOCOL_INSECURE_FALLBACK
BOOL
X - - X Windows 10 w wersji 21H1
WINHTTP_OPTION_UNLOAD_NOTIFY_EVENT
SIEĆ ZAPLECZA
X - - X -
WINHTTP_OPTION_UNSAFE_HEADER_PARSING
DWORD
- X - X -
WINHTTP_OPTION_UPGRADE_TO_WEB_SOCKET
N/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 -

Uwaga / Notatka

W przypadku systemów Windows XP i Windows 2000 zobacz wymaganiaRun-Time.

Wymagania

Wymaganie Wartość
Minimalny obsługiwany klient Windows XP, Windows 2000 Professional z dodatkiem SP3 [tylko aplikacje klasyczne]
Minimalny obsługiwany serwer Windows Server 2003, Windows 2000 Server z dodatkiem SP3 [tylko aplikacje klasyczne]
Redistributowalny WinHTTP 5.0 i Internet Explorer 5.01 lub nowszy w systemach Windows XP i Windows 2000.
Nagłówek Winhttp.h

Zobacz także