【问题标题】:How to get response url from HINTERNET如何从 HINTERNET 获取响应 url
【发布时间】:2011-12-27 09:00:16
【问题描述】:

当我访问这样的 URL 时:http://www.misslee.net/_common/inc/mi3dark_down.asp 它让我回到真实的 URL => http://125.141.146.184:8080/download/SetupMisslee_Dark.exe

我猜我被重定向了。我想知道重定向的 URL。请帮我。 如何从 HINTERNET 获取响应 url?

 TCHAR szServerName[] = _T("www.misslee.net");  
 TCHAR szFormAction[] = _T("/_common/inc/mi3dark_down.asp");
 TCHAR szHeader[500] = {0,};
 LPCWSTR accept[2]={_T("*/*"), NULL};

 DWORD_PTR dwContext=1;
 BOOL  bResult;
 DWORD  dwSize;

 HINTERNET hInternet = InternetOpen( _T("HTTP-POST"), INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0 );

 HINTERNET hConnect = InternetConnect( hInternet, szServerName, INTERNET_DEFAULT_HTTP_PORT, NULL, _T("HTTP/1.1"), INTERNET_SERVICE_HTTP, 0, dwContext);

 HINTERNET hRequest = HttpOpenRequest( hConnect, _T("POST"), szFormAction, _T("HTTP/1.1"), NULL, accept,INTERNET_FLAG_DONT_CACHE, dwContext);

 bResult = HttpSendRequest( hRequest, NULL, 0, NULL, NULL);

// Redirected response url???????????

【问题讨论】:

    标签: c++ wininet


    【解决方案1】:

    InternetQueryOptionINTERNET_OPTION_URL 标志一起使用。

    INTERNET_OPTION_URL

    检索包含已下载资源的完整 URL 的字符串值。如果原始 URL 包含任何额外数据, 例如搜索字符串或锚点,或者如果呼叫被重定向,则 返回的网址与原始网址不同。此选项适用于 InternetOpenUrl、FtpOpenFile、 GopherOpenFile 或 HttpOpenRequest。它被 InternetQueryOption 使用。

    【讨论】:

      【解决方案2】:

      您可以使用HttpQueryInfo 函数和HTTP_QUERY_LOCATION 查询信息标志来获取响应位置。

      来自 MSDN:

      HTTP_QUERY_LOCATION

      33
      检索位置响应标头中使用的绝对统一资源标识符 (URI)。

      【讨论】:

        【解决方案3】:

        我认为您看到的是自动 WinInet 重定向处理,其中 API 接收重定向响应并自动重新发送另一个请求以将重定向的请求数据返回给调用者,从而透明地处理重定向。

        如果您对此不满意,请为您的请求提供INTERNET_FLAG_NO_AUTO_REDIRECT 标志并禁用重定向。您将收到原始响应,查询标头并决定是否要发出第二个请求。

        不会自动处理重定向。这个标志也可以用 通过 InternetOpenUrl 处理 HTTP 请求。

        【讨论】:

          猜你喜欢
          • 2018-05-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-05-13
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多