甲方需求要通过https实时下载某个合作网站(有账号和密码)的数据。
直接访问如下提示:需要进行身份验证。
不知道这种方式的验证叫什么,但找到了解决方案。 可以用WebClient来进行处理。
1.实现ICredentials接口
public class MyCredentials : ICredentials { public NetworkCredential GetCredential(Uri uri, string authType) { NetworkCredential newCred = new NetworkCredential("username", "password"); return newCred; } }
2.使用WebClient
using (var client = new WebClient())
{
client.Credentials = new MyCredentials();
var datas = client.DownloadData("https://www.xxx.com/wifs/data/PNG/");
var str = Encoding.Default.GetString(datas);
return str;
}
以上亲测可用抓取到html页面。