Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WinInet-301重定向后如何获取服务器URL? 我在用C++编写WiNETE函数,但遇到了一个问题。_C++_Url_Redirect_Wininet - Fatal编程技术网

WinInet-301重定向后如何获取服务器URL? 我在用C++编写WiNETE函数,但遇到了一个问题。

WinInet-301重定向后如何获取服务器URL? 我在用C++编写WiNETE函数,但遇到了一个问题。,c++,url,redirect,wininet,C++,Url,Redirect,Wininet,我的程序打开一个带有HttpOpenRequest、HttpSendRequest、InternetReadFile的URL。。。函数并保存输出数据。我需要用输出数据保存URL,但在某些情况下,服务器会给我301 Moved,InternetReadFile会从新地址读取文件 这没关系,但我需要知道它是什么地址。我尝试将HttpQueryInfo与HTTP\u查询\u原始\u头\u CRLF一起使用,但我没有获得此信息,只有内容类型、缓存控制、cookie等。当我使用HTTP\u查询\u内容\u

我的程序打开一个带有HttpOpenRequest、HttpSendRequest、InternetReadFile的URL。。。函数并保存输出数据。我需要用输出数据保存URL,但在某些情况下,服务器会给我301 Moved,InternetReadFile会从新地址读取文件

这没关系,但我需要知道它是什么地址。我尝试将HttpQueryInfo与HTTP\u查询\u原始\u头\u CRLF一起使用,但我没有获得此信息,只有内容类型、缓存控制、cookie等。当我使用HTTP\u查询\u内容\u位置或类似的内容时,我得到错误\u HTTP\u头\u未找到


您能帮助我吗?

WinInet收到重定向响应后,默认情况下会自动向新URL发送新的HTTP请求。当WinInet准备好让您开始使用InternetReadFile读取文件数据时,此时可用的标题属于最后一个请求的URL,该URL可能与您最初请求的URL不同。这就是为什么您没有看到位置标题的原因。要处理重定向响应的头,必须在调用HttpOpenRequest时指定INTERNET\u标志\u否\u自动\u重定向标志,然后,您可以使用HttpQueryInfo检测重定向状态代码并读取其位置标头,然后调用HttpSendRequest请求重定向到的新URL。

WinInet收到重定向响应后,默认情况下会自动向新URL发送新HTTP请求。当WinInet准备好让您开始使用InternetReadFile读取文件数据时,此时可用的标题属于最后一个请求的URL,该URL可能与您最初请求的URL不同。这就是为什么您没有看到位置标题的原因。要处理重定向响应的头,必须在调用HttpOpenRequest时指定INTERNET\u标志\u否\u自动\u重定向标志,然后,您可以使用HttpQueryInfo检测重定向状态代码并读取其位置标头,然后调用HttpSendRequest请求重定向到的新URL。

当wininet中自动发生重定向时,您可以使用InternetStatusCallback函数获取重定向URL。代码INTERNET_STATUS_REDIRECT 110将向回调函数提供带有新URL的缓冲区。您可以使用InterNet句柄上的InternetSetStatusCallback为请求设置回调函数。

当wininet中自动发生重定向时,您可以使用InternetStatusCallback函数获取重定向url。代码INTERNET_STATUS_REDIRECT 110将向回调函数提供带有新URL的缓冲区。您可以在HINTERNET句柄上使用InternetSetStatusCallback为请求设置回调函数