首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WinHTTP错误无效URL

WinHTTP错误无效URL
EN

Stack Overflow用户
提问于 2010-12-09 08:59:29
回答 1查看 3K关注 0票数 3

如何指定带有路径的URL,例如:http://stackoverflow.com/questions

下面的代码可以工作,但不能使用上面示例中指定的URL。

代码语言:javascript
复制
 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 );
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-09 09:29:38

WinHttpConnect只接受主机名部分。您应该将路径的其余部分传递给WinHttpOpenRequest (第三个参数pwszObjectName):

代码语言:javascript
复制
WinHttpOpenRequest( hConnect, L"GET", L"/questions", NULL,WINHTTP_NO_REFERER, 
       WINHTTP_DEFAULT_ACCEPT_TYPES, 
      WINHTTP_FLAG_SECURE );
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4393924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档