因此,我首先要说,当谈到HttpWebRequesting时,我是非常新的和基本的。我有一个调度程序,我想要自动化。但为了使我做到这一点,我必须按以下顺序做以下所有工作:
1)输入用户名和密码
1A)命中登录
2)选择带有"2016“文本的单选按钮
2A)命中继续
3)重新输入密码
( 3a)命中确定
4)输入附表ID
4a)点击添加
在所有这些之后,网站通常会在屏幕顶部显示一个绿色或红色的标签,以表示该项目是否计划正确。目前,我已经使用WebBrowser控件完成了所有这些工作,并且正在清除每个项的所有元素和属性,以检查是否是输入数据的合适字段。然而,最近有人告诉我,使用HttpRequests要快得多。
在研究了一些问题后,我使用came across this进行身份验证。我在正确的轨道上吗??
有什么建议或暗示吗?
发布于 2015-11-17 00:14:30
您应该打开浏览器网络监视器,看看请求使用了什么方法,传递参数的名称是什么,并模拟在HttpWebRequest对象中,我假设您已经知道如何做GET方法,下面是如何使用HttpWebRequest进行基本POST请求的方法
var cookies = new CookieContainer();
var req = (HttpWebRequest)WebRequest.Create("https://example.com/login");
req.CookieContainer = cookies;
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
var buffer = Encoding.UTF8.GetBytes("user=foo&pass=bar"); //passed params
req.ContentLength = buffer.Length;
using (var reqStream = req.GetRequestStream()) {
reqStream.Write(buffer, 0, buffer.Length);
}
using (var res = req.GetResponse())
using (var resStream = res.GetResponseStream())
using (var reader = new StreamReader(resStream)) {
var respStr = reader.ReadToEnd();
}您应该对所有请求使用相同的CookieContainer对象,respStr现在是服务器文本响应,您也可以在请求中发送额外的头(如果需要的话使用req.Headers.AddHeader() ),或者设置用户代理或更改内容类型等等,这些都取决于您在网络监视器中找到的内容,或者您可以使用像fiddler这样的桌面应用程序。
https://stackoverflow.com/questions/33191159
复制相似问题