首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >过程HttpWebRequest

过程HttpWebRequest
EN

Stack Overflow用户
提问于 2015-10-17 20:15:47
回答 1查看 51关注 0票数 0

因此,我首先要说,当谈到HttpWebRequesting时,我是非常新的和基本的。我有一个调度程序,我想要自动化。但为了使我做到这一点,我必须按以下顺序做以下所有工作:

1)输入用户名和密码

1A)命中登录

2)选择带有"2016“文本的单选按钮

2A)命中继续

3)重新输入密码

( 3a)命中确定

4)输入附表ID

4a)点击添加

在所有这些之后,网站通常会在屏幕顶部显示一个绿色或红色的标签,以表示该项目是否计划正确。目前,我已经使用WebBrowser控件完成了所有这些工作,并且正在清除每个项的所有元素和属性,以检查是否是输入数据的合适字段。然而,最近有人告诉我,使用HttpRequests要快得多。

在研究了一些问题后,我使用came across this进行身份验证。我在正确的轨道上吗??

有什么建议或暗示吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-17 00:14:30

您应该打开浏览器网络监视器,看看请求使用了什么方法,传递参数的名称是什么,并模拟在HttpWebRequest对象中,我假设您已经知道如何做GET方法,下面是如何使用HttpWebRequest进行基本POST请求的方法

代码语言:javascript
复制
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这样的桌面应用程序。

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

https://stackoverflow.com/questions/33191159

复制
相关文章

相似问题

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