2010-12-09 2 views
1

Comment spécifier une URL avec le chemin d'accès par exemple: http://stackoverflow.com/questions.Erreur WinHTTP URL non valide

Les travaux suivants, mais pas avec l'URL spécifiée ci-dessus dans l'exemple.

LPCWSTR useragent = L"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1 (.NET CLR 3.5.30729)"; 
DWORD dwSize = 0; 
DWORD dwDownloaded = 0; 
LPSTR pszOutBuffer; 
BOOL bResults = FALSE; 
HINTERNET hSession = NULL, hConnect = NULL, hRequest = NULL; 

// Use WinHttpOpen to obtain a session handle. 
hSession = WinHttpOpen(useragent, 
     WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, 
     WINHTTP_NO_PROXY_NAME, 
     WINHTTP_NO_PROXY_BYPASS, 0); 

// Specify an HTTP server. 
if(hSession) 
    hConnect = WinHttpConnect(hSession, L"www.stackoverflow.com", 
      INTERNET_DEFAULT_HTTPS_PORT, 0); 

// Create an HTTP request handle. 
if(hConnect) 
hRequest = WinHttpOpenRequest(hConnect, L"GET", NULL, 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); 

// End the request. 
if(bResults) 
bResults = WinHttpReceiveResponse(hRequest, NULL); 

Répondre

4

WinHttpConnect ne prend que la partie du nom d'hôte. Vous devez passer le reste du chemin à WinHttpOpenRequest (le troisième paramètre, pwszObjectName):

WinHttpOpenRequest(hConnect, L"GET", L"/questions", NULL,WINHTTP_NO_REFERER, 
     WINHTTP_DEFAULT_ACCEPT_TYPES, 
     WINHTTP_FLAG_SECURE); 
Questions connexes