WinInet:如何取得被服务器重定向的文件的实际URL?

white 2000-06-03 12:26:00
WinInet有个特性,可以分析HTTP响应头。如果服务器把文件重定向到另一个地址,
它可以重新发出请求,把文件内容取回来。
可是我如何才能知道被重定向后的文件的实际URL呢?
它没有向我的回调函数返回302状态码,也无法用CHttpFile的QueryInfo查询URI来
取得,CHttpFile的方法GetFileURL也返回的最初的那个文件的URL。
而且,竟然也没办法查询REQUEST的请求头,因为CHttpFile的QueryInfo认为传进去的
参数是不在范围内的!
我该如何取得呢?
...全文
398 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
white 2000-06-09
  • 打赏
  • 举报
回复
哈,我最终找到了解决办法,在OpenRequest的时候传递的参数中,如果给INTERNET_FLAG_NO_AUTO_REDIRECT,则它在遇到REDIRECT时会直接报告
一个302错误
white 2000-06-04
  • 打赏
  • 举报
回复
:(
我说的也是CHttpFile方法QueryInfo,它不认参数HTTP_QUERY_FLAG_REQUEST_HEADERS and HTTP_QUERY_RAW_HEADERS_CRLF

至于HTTP_QUERY_CUSTOM,我倒还真不知道怎么用呢。我查查看
Tommy Chang 2000-06-04
  • 打赏
  • 举报
回复
刚才我给得是chttpfile的方法啊,反问一句,取普通的http header的变量值能不能办到?例如server。
试一下HTTP_QUERY_CUSTOM这个参数吧。
关注

:)
white 2000-06-03
  • 打赏
  • 举报
回复
如果调用API是可以取得的,可是由于我的程序一开始就使用的是MFC类CHttpFile,调用
它的QueryInfo方法时,如果我用HTTP_QUERY_FLAG_REQUEST_HEADERS and HTTP_QUERY_RAW_HEADERS_CRLF,
则发生了ASSERT,在类CHttpFile的QueryInfo方法中第一行为:
ASSERT(dwInfoLevel <= HTTP_QUERY_MAX && dwInfoLevel >= 0);
我忽略了什么地方?

Tommy Chang 2000-06-03
  • 打赏
  • 举报
回复
刚才查了下msdn,上面写的CHttpFile.QueryInfo是可以查到request header的。

这是其中dwInfoLevel的说明其中一部分
CHttpFile::QueryInfo
BOOL QueryInfo( DWORD dwInfoLevel, LPVOID lpvBuffer, LPDWORD lpdwBufferLength, LPDWORD lpdwIndex = NULL ) const;

HTTP_QUERY_CUSTOM
Finds the header name and returns this value in lpvBuffer on output. HTTP_QUERY_CUSTOM throws an assertion if the header isn’t found.


HTTP_QUERY_FLAG_REQUEST_HEADERS
Typically, the application queries the response headers, but an application can also query request headers by using this flag.

看样子应该是可以得。

16,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧