欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

c#采集图片时出现403 Forbidden提示

程序员文章站 2022-06-29 07:59:00
今天在下载一个网站的图片时,提示403 Forbidden,对方服务器是使用了https证书的。    我是用的WebClient去...

今天在下载一个网站的图片时,提示403 Forbidden,对方服务器是使用了https证书的。


   我是用的WebClient去下载的,当时写的代码就是简单的声明和下载

   

WebClient client = new WebClient();
var result = client.DownloadData(url);

网上翻找了一些资料,

说得比较多的是要用HttpWebRequest去获取,但是我尝试了没有成功。

 这种情况明显就是图片远程服务器端做了处理,防止盗用图片,我单独用浏览器访问图片地址时,多次刷新后浏览器也会有相同提示。 

这种一般思路是f12查看network情况,模拟浏览器访问。 研究后大致有如下问题,

 wc的证书凭证设置 

user-agent设置 

referer设置

 host设置 

最后的代码如下

WebClient client = new WebClient();
client.Credentials = CredentialCache.DefaultCredentials;
client.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36");
client.Headers.Add("Host", new Uri(url).Host);
client.Headers.Add("Referer", refurl);

var result = client.DownloadData(url);

到此问题解决。