Votre code devrait ressembler à ceci:
// Specify an HTTP server.
if (hSession)
hConnect = WinHttpConnect(hSession, L"www.example.com",
INTERNET_DEFAULT_HTTP_PORT, 0);
// Create an HTTP request handle.
if (hConnect)
hRequest = WinHttpOpenRequest(hConnect, L"GET", L"/path/resource.html",
NULL, WINHTTP_NO_REFERER,
WINHTTP_DEFAULT_ACCEPT_TYPES,
WINHTTP_FLAG_SECURE);
// Send a request.
if (hRequest)
bResults = WinHttpSendRequest(hRequest,
WINHTTP_NO_ADDITIONAL_HEADERS,
0, WINHTTP_NO_REQUEST_DATA, 0,
0, 0);
Pouvez-vous poster ces trois appels à partir de votre code?
Notez que l'URL complète est divisé en deux - le nom d'hôte est spécifié dans l'appel WinHttpConnect
, mais le chemin de la ressource relative est spécifié dans l'appel WinHttpOpenRequest
(comme paramètre pwszObjectName
). En fonction de votre commentaire, il semble que vous spécifiez l'URL complète dans l'appel WinHttpConnect
.
Je ne connais pas la réponse, mais je suis curieux de savoir pourquoi vous souhaitez cela? – SteelBytes
Depuis que vous devez envoyer Host: site.com dans une ligne distincte et envoyer uniquement le chemin dans le GET? En fait, après avoir lu le RFC, il est dit si le site indiqué dans l'hôte UET GET: devrait être ignoré. – jpyllman
Pouvez-vous poster du code? –