首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用http POST登录到google

使用http POST登录到google
EN

Stack Overflow用户
提问于 2011-05-20 18:51:41
回答 3查看 2.1K关注 0票数 0

我想谷歌对用户有一个限制,所以用户必须登录才能下载文件,我想用http post登录到像谷歌这样的网站,然后下载文件。

如何使用http POST登录类似google的站点?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-20 19:08:14

我建议使用一些pop或imap组件来检索邮件。例如Open Pop .NET

票数 0
EN

Stack Overflow用户

发布于 2011-05-20 18:56:42

如果不提供有关此站点如何处理身份验证的更多详细信息,则无法回答您的问题。仅仅说像google这样的网站是不够的。例如,Google提供了一个API来实现这一点。

现在,让我们假设这个站点使用cookie来跟踪经过身份验证的用户。下面是所涉及的过程的概述。您可以使用HttpWebRequest的CookieContainer属性。因此,您将向页面发送第一个请求,允许通过发送用户名/密码进行身份验证。然后,cookie容器将捕获身份验证cookie,并在后续请求下载文件时发送该cookie。

和带代码的插图:

代码语言:javascript
复制
var container = new CookieContainer();

var request = (HttpWebRequest)WebRequest.Create("https://example.com/login");
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.CookieContainer = container;
using (var stream = request.GetRequestStream())
using (var writer = new StreamWriter(stream))
{
    var values = HttpUtility.ParseQueryString(string.Empty);
    values["password"] = "secret";
    values["username"] = "someuser";
    writer.Write(values.ToString());
}

using (var response = request.GetResponse())
{
    // At this stage if authentication went fine the 
    // cookie container should have the authentication cookie
    // allowing to track the user
}

// Now let's send a second request to download the file
request = (HttpWebRequest)WebRequest.Create("https://example.com/authenticated_resource");
request.CookieContainer = container;
request.Method = "GET";
using (var response = request.GetResponse())
using (var stream = response.GetResponseStream())
{
    // TODO: do something with the response
}
票数 1
EN

Stack Overflow用户

发布于 2011-05-20 22:49:35

这叫做屏幕抓取。您必须发出HTTP请求,在需要提交表单的情况下发布表单数据,然后解析响应。我使用HtmlAgilityPack使这些任务变得更容易,但它不会为您完成所有这些任务……

在这里看一下:

http://crazorsharp.blogspot.com/2009/06/c-html-screen-scraping-part-1.html

http://crazorsharp.blogspot.com/2009/06/c-html-screen-scraping-part-2.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6070840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档