C# 如何自动确定登录和http请求所需的客户端请求?
编辑:此时它倾向于HttpListener。。它可能还必须通过Sockets+webclient或所有Sockets完成。您必须发出GET请求才能检索请求头,这就是所有。。。套接字还允许服务器在不需要请求的情况下将内容推送到客户端,这是通过WebClient无法完成的* 我想做的是输入一个网址到一个网站登录服务器:大学校园,电子邮件,论坛,其他你每天需要的东西,并为他们创建一个工作登录。由于每台服务器可能有所不同,请求类型也会发生变化:ie://castRequest.ServicePoint.Expect100Continue=false; //castRequest.ContentType=application/x-www-form-urlencoded 如何从C客户机中找到这些必要的更改,而不是手动通过数据包和其他苛刻的方法 我们走吧。。。 -好的,你打开一个网站 -没问题 -你可以从html中抓取一些登录标签,非常简单。。 -现在我的位置是:您尝试登录的位置 -发送一个用户/pw不仅仅是这两件事的帖子 -有时也不只是浏览网页 -有http凭据、网络凭据和安全凭据+用户/PW 证书 html用户/pw输入很容易解析出来:输入类型=密码名称=密码id=密码大小=15值=>,回到-->如何连接和确定服务器需要的所有请求的问题 我将如何分析和关闭每个请求的请求,以及如何从网络获取数据:application/x-www-form-urlencoded?我还发现,这并不总是返回通过某些浏览器或其他系统获得的相同cookie。为什么 将被删除的代码段necessary://BEGIN 通常这些站点启用了cookie,因此您使用启用cookie的WebClient:C# 如何自动确定登录和http请求所需的客户端请求?,c#,http,httpwebrequest,client-server,httprequest,C#,Http,Httpwebrequest,Client Server,Httprequest,编辑:此时它倾向于HttpListener。。它可能还必须通过Sockets+webclient或所有Sockets完成。您必须发出GET请求才能检索请求头,这就是所有。。。套接字还允许服务器在不需要请求的情况下将内容推送到客户端,这是通过WebClient无法完成的* 我想做的是输入一个网址到一个网站登录服务器:大学校园,电子邮件,论坛,其他你每天需要的东西,并为他们创建一个工作登录。由于每台服务器可能有所不同,请求类型也会发生变化:ie://castRequest.ServicePoint.
namespace watcher
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//throw in a function create a cookie container:
void startRequest(){
CookieContainer cookieJar = new CookieContainer();
HTTP http = new HTTP(cookieJar);
}
public class HTTP : WebClient
{
public HTTP()
: this(new CookieContainer())
{ }
public HTTP(CookieContainer c)
{
CookieContainer = c;
}
public CookieContainer CookieContainer { get; set; }
protected override WebRequest GetWebRequest(Uri address)
{
WebRequest request = base.GetWebRequest(address);
var castRequest = request as HttpWebRequest;
if (castRequest != null)
{
castRequest.CookieContainer = CookieContainer;
//castRequest.ServicePoint.Expect100Continue = false;
//castRequest.ContentType = "application/x-www-form-urlencoded";
}
return request;
}
}
}
我会结合使用Firefox插件Greasemonkey和Firebug。您无法真正以编程方式确定服务器的期望值。它们是人类写的,每个人都会用创造力解决问题。您必须手动为每个服务器分别建立服务器期望的内容。即使那样,这也不容易,或者在某些情况下,我想,甚至是可能的。您尝试登录的服务器可能会对不同的客户端做出不同的反应,原因很多,人们只能猜测。这就是为什么你会遇到cookies的问题。您不需要费力地查看数据包,但需要手动查看发送和接收的请求、这些请求的内容以及数据的含义。要获得进一步的帮助,您需要逐一查看每一个问题并提出具体问题。此时看起来像是HttpListener。。它可能还必须通过Sockets+webclient或all Sockets完成。您必须发出GET请求以检索请求头,这就是所有。。。套接字还允许服务器在不需要请求的情况下将内容推送到客户端,这是通过WebClient无法完成的*
这是HTTP协议,如果没有客户端/服务器握手,互联网将无法工作。除地址外,您无需预先提供其他信息。服务器的工作是为您服务,而不是反过来。+1。Fiddler是查看请求的另一个选项。。。旁注:由于OP尝试以自己的身份登录,因此常规的web身份验证应该始终是可能的。我也同意,智能卡或双因素授权之类的东西不可能完全自动化。您在所有级别上都有点错误,这是一个协议,请使用它。我正在研究HttpListener,现在我明白你在说什么了。在这种情况下,您需要的是能够解释和运行javascript、flash和/或其他决定返回服务器的内容的东西。你最好使用一些只在普通浏览器中填写表单的东西,比如greasemonkey。