WebClient:登录Gmail

3

我一直在尝试使用以下方式登录Gmail:

WebClient Web = new WebClient();
Web.Credentials = new NetworkCredential(Email, Password, "https://mail.google.com");

然后,使用IHTMLDocument2接口浏览电子邮件,通过获取与每个电子邮件关联的ID、构建URL、导航到该URL和使用DownloadString方法,将HTML内容传递给IHTMLDocument2接口。

问题是谷歌不接受我发送的凭据,所以我永远无法登录。然而,在尝试几次之后,我发现Google监控了这一活动,因为我在实际的电子邮件帐户上看到了通知。

我想知道如何解决这个问题或者是否可能使用WebClient登录Gmail?如果可以,具体步骤是什么?


这可能会对你有所帮助...https://dev59.com/RF7Va4cB1Zd3GeqPK40N - SiD
当然可以,因为浏览器也只是发送HTTP请求,但你不应该这样做。Web应用程序有API来实现这一点,例如Gmail API。 Gmail的前端受到了自动化攻击的保护,就像您正在尝试的那样。如果您想打败它,您将需要使用真正的浏览器和类似Fiddler的工具进行反向工程,并且可能会证明相对困难。 - CodeCaster
1个回答

1
使用Fiddler观察浏览器的操作。Fiddler可以捕获HTTPS流量。Google登录比你想象的更加复杂。 在Web表单中,Credentials属性没有作用。HTML中没有标准化的登录表单方式。WebClient不可能知道Google登录表单的工作原理。它无法为您自动化此过程。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接