Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Med några få undantag är WinINet en superuppsättning WinHTTP. När du väljer mellan de två bör du använda WinINet-om du inte planerar att köra i en tjänst- eller tjänstliknande process som kräver personifiering och sessionsisolering.
Jämförelse av funktioner
| Funktion | WinINet | WinHTTP |
|---|---|---|
| cacheminne för autentiseringsuppgifter. Tillåter att alla inbyggda program i Windows Internet Explorer hämtar autentiseringsuppgifter automatiskt. Det gör också att ett program som körs utanför Internet Explorer kan fråga/ange autentiseringsuppgifterna för servern bara en gång. Från och med då är begäranden automatiska. | Ja | Nej |
| Uppmaning om autentiseringsuppgifter. Tillhandahåller ett API som gör att anropande kod kan fråga användaren om autentiseringsuppgifter. | Ja | Nej |
| FTP | Ja | Nej |
| stöd för autodial/RAS. Det här är äldre funktioner. Använd fjärråtkomst i stället. | Ja | Nej |
| zoner. Automatisk integrering med Internet Explorer-säkerhetszoner. | Ja | Nej |
| IDNA-stöd. Integrerat stöd för IDNA RFC/Punycode. | Ja | Ja |
| Cookie Jar-API:er. Beständiga och icke-beständiga cookies stöds. Alla program eller skript kan använda detta för att se samma cookies som webbläsaren. | Ja | Nej |
| IE-stöd för skyddat läge | Ja | Nej |
| Dekomprimeringsstöd. Stöd för gzip- och deflate-komprimeringsschema. | Ja | Ja |
| Stöd för uppdelad uppladdning. Klientkoden måste utföra segmenteringen. | Nej | Ja |
| SOCKS4 (SOCKS version 4) stöder. Innehåller inte v4a. | Ja | Nej |
| SOCKS5 (SOCKS version 5) stöder | Nej | Nej |
| Dubbelriktad skicka och ta emot | Nej | Nej |
| överlappad I/O | Nej | Nej |
| Stöd för filschema. Användbart för proxyskript med ett filschema. | Ja | Nej |
| InternetOpenUrl. Förenklad kod för att öppna en URL. | Ja | Nej |
| Servicesupport. Kan köras från en tjänst eller ett tjänstkonto. | Nej | Ja |
| Sessionsisolering. Separata sessioner påverkar inte varandra. | Nej | Ja |
| Imitation. Kan anropas medan tråden utger sig för att vara en annan användare. | Nej | Ja |
Relaterade ämnen
Snabb beslutsguide
Använd det här flödesschemat för att välja rätt HTTP-klientstack:
-
Körs koden i en Windows-tjänst, en systemprocess eller under en annan användares identitet?
- Ja → Använda WinHTTP.
-
Är din kod en skrivbordsapp som behöver användarens proxyinställningar för Internetalternativ (IE), cookies eller uppmaningar om autentiseringsuppgifter?
- Ja → använda WinINet.
-
Skriver du en modern C++-skrivbordsapp eller UWP/WinUI-app?
- Ja → Använd Windows. Web.Http (C++/WinRT via Windows. Web.Http-namnrymd).
-
Skriver du ett .NET program?
- Ja → använd System.Net.Http.HttpClient.
-
Behöver du plattformsoberoende kompatibilitet?
- Ja → Använd libcurl eller ett liknande portabelt bibliotek.
Note
När du varken ska använda WinINet eller WinHTTP – Om du skapar ett nytt program och inte kräver äldre Win32-integrering föredrar du de moderna alternativ som anges ovan. De erbjuder enklare API:er och bättre asynkront stöd. Vissa alternativ erbjuder också ytterligare fördelar: libcurl och .NET HttpClient är plattformsoberoende; TLS 1.3-tillgänglighet beror på den underliggande TLS-stacken och OS-konfigurationen. Reservera WinHTTP/WinINet för scenarier som specifikt kräver Win32-tjänststöd, delning av webbläsarautentiseringsuppgifter eller djup proxyintegrering.
Important
Säkerhetspåminnelse – Oavsett vilken HTTP-stack du väljer inaktiverar du aldrig TLS-certifikatverifiering i produktion. Både WinHTTP och WinINet tillåter att certifikatfel ignoreras via flaggor, men det gör att ditt program utsätts för man-in-the-middle-attacker.