C# 通过具有重定向的代码下载文件?
我在数据库中有一些URL。问题是URL是重定向到我想要的内容的URL 我有类似的东西 现在如果我去这个网站,它会重定向到照片,这样url就会被删除 是否有可能通过C#刮取(下载),然后重定向并获得真实的url,这样我就可以下载图像了?我想你是在寻找这个属性。属性获取或设置一个值,该值指示请求是否应遵循重定向响应 示例取自MSDNC# 通过具有重定向的代码下载文件?,c#,.net,C#,.net,我在数据库中有一些URL。问题是URL是重定向到我想要的内容的URL 我有类似的东西 现在如果我去这个网站,它会重定向到照片,这样url就会被删除 是否有可能通过C#刮取(下载),然后重定向并获得真实的url,这样我就可以下载图像了?我想你是在寻找这个属性。属性获取或设置一个值,该值指示请求是否应遵循重定向响应 示例取自MSDN HttpWebRequest myHttpWebRequest=(HttpWebRequest)WebRequest.Create("http://www.cont
HttpWebRequest myHttpWebRequest=(HttpWebRequest)WebRequest.Create("http://www.contoso.com");
myHttpWebRequest.MaximumAutomaticRedirections=1;
myHttpWebRequest.AllowAutoRedirect=true;
HttpWebResponse myHttpWebResponse=(HttpWebResponse)myHttpWebRequest.GetResponse();
当与SharePoint外部URL一起使用时,我在尝试使HttpWebRequest始终完全重定向时遇到问题;我就是不能让它工作 经过大量的吹毛求疵,我发现这个也可以用
WebClient
来完成,这对我来说更可靠
要使其与WebClient
一起工作,您似乎必须创建一个派生自WebClient
的类,以便手动强制AllowAutoRedirect
为true
我写了更多关于这个的东西,它借用了它的代码
关键代码是:
所有这些链接都断了也没用。你知道,你可以使用php来提供图像。如果您是通过HTML重定向完成的,则必须解析HTML并搜索重定向标记。通过javascript来做这件事将是一件非常痛苦的事情。@Wug-谁说过php或javascript?他没有提供任何服务,他想下载通过重定向从服务器访问的图像。他似乎没有控制服务器。不,我没有控制服务器。我需要将数百个img移动到新服务器上,因此我需要下载它们,但我拥有的一些链接是唯一用于转到pg并重定向到实际img的链接(不知道他们为什么这样做,也不只是直接链接到img)。我不能提供有效的链接(我也不知道任何公共网站可以这样做),因为这是公司的财产。这正是我要找的!!没有想到httpWebRequest只是查看Webclient(我通常使用的)。我认为还应该提到,您必须关闭myHttpWebResponse。如果您尝试在WebClient出现大量超时后立即使用它,则会出现这种情况。@chobo2是的,您的权利It MSDN应该提到这一点,作为一种必要/良好的做法
class CustomWebclient: WebClient
{
[System.Security.SecuritySafeCritical]
public CustomWebclient(): base()
{
}
public CookieContainer cookieContainer = new CookieContainer();
protected override WebRequest GetWebRequest(Uri myAddress)
{
WebRequest request = base.GetWebRequest(myAddress);
if (request is HttpWebRequest)
{
(request as HttpWebRequest).CookieContainer = cookieContainer;
(request as HttpWebRequest).AllowAutoRedirect = true;
}
return request;
}
}