I can download this by hand in IE.
But, using follow code
WebClient client = new WebClient();
client.DownloadFile(address, filename);
Show Exception: 403 Forbidden
What's wrong? How can I do that?
others
I can download this by hand in IE.
But, using follow code
WebClient client = new WebClient();
client.DownloadFile(address, filename);
Show Exception: 403 Forbidden
What's wrong? How can I do that?
others
403 may also be caused by TLS issues. To verify, you should check the text of the WebException.Response object.
catch (WebException ex)
{
if (ex.Response != null)
{
var response = ex.Response;
var dataStream = response.GetResponseStream();
var reader = new StreamReader(dataStream);
var details = reader.ReadToEnd();
}
}
If it is TLS then try adding this to your code to force TLS1.2.
For .net4:
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
For .net4.5 or later:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
I had this problem trying to download an image from a SharePoint site url. In my case setting the user-agent to Other or blank in the header wasn't enough, I had to set the user-agent as follows instead:
client.Headers.Add("user-agent", " Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0");
That solution came from this answer.