Nsis 解析url重定向上的文件名

Nsis 解析url重定向上的文件名,nsis,wininet,Nsis,Wininet,我使用wininet(带有名为inetc的nsis插件)下载文件 我想用url中使用的相同文件名保存文件,例如http://some.domain.com/myfile.doc应另存为myfile.doc。问题是当我有一个带有重定向的url时。例如,我可以获得http://some.domain.com/它重定向到http://some.domain.com/myfile.doc,我想将其另存为myfile.doc 如何解决这个问题?INetC并不是专门为支持它而设计的,但我想您可以在循环中调用

我使用
wininet
(带有名为
inetc
的nsis插件)下载文件

我想用url中使用的相同文件名保存文件,例如
http://some.domain.com/myfile.doc
应另存为
myfile.doc
。问题是当我有一个带有重定向的url时。例如,我可以获得
http://some.domain.com/
它重定向到
http://some.domain.com/myfile.doc
,我想将其另存为
myfile.doc


如何解决这个问题?

INetC并不是专门为支持它而设计的,但我想您可以在循环中调用
INetC::head
,解析返回的头,直到它不再是重定向

编辑:

由于INetC仅设计用于处理由调用方命名的文件,因此它仅依赖于高级WinInet默认处理


虽然可以修改INetC或创建一个新插件,但让服务器完成这项工作可能会减少工作量。它可以返回INetC::head可以下载的内容处置头,或者返回一个特殊的URL,如server.com/?getname,它只返回名称,这样您就可以首先使用INetC::get获取名称,然后使用正确的目标文件名执行真正的INetC::get…

谢谢您的回答。我试过了,但是我没有在标题中找到任何与重定向相关的内容-你能详细说明一下吗?这是我得到的一个标题示例:
HTTP/1.1 200确定接受范围:字节内容类型:应用程序/八位字节流ETag:“985A0576BCCD1:0”上次修改时间:2012年11月6日星期二22:09:08 GMT服务器:Microsoft IIS/7.5 X-Powered-By:ASP.NET内容长度:453112日期:2012年11月8日星期四20:41:03 GMT连接:保持活动状态
。。。实际上,我刚刚用wireshark检查了一下,它看起来仍然在做所有的重定向。WinINet既有HTTP\u QUERY\u CONTENT\u LOCATION,又有INTERNET\u FLAG\u NO\u AUTO\u REDIRECT,但我猜inetc没有公开使用它们的方法它没有公开,但这并不意味着我不能公开它们:)感谢指针,有了它们,我还可以访问
INTERNET\u OPTION\u URL
。我将把这个功能添加到inetc中,并在nsis论坛的线程上发布它(当然,如果它能解决我的问题的话)。这很有帮助