我有一个 Web 应用程序(我无法控制),我需要以编程方式发送 HTTP 帖子。目前我正在使用 HttpWebRequest 之类的
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://someserver.com/blah/blah.aspx");
但是,应用程序在发布到数据时返回“未知服务器错误(不是 IIS 错误,自定义应用程序错误页面)”。使用 Fiddler 比较我的 Post 与 IE 帖子,我可以看到唯一的区别在于请求的 POST 行:
在 Internet Explorer 中提琴手(RAW 视图)显示流量
POST /blah/blah.aspx HTTP/1.1
在我的 C# 程序提琴手(RAW 视图)中,将流量记录为
发布https://someserver.com/blah/blah.aspx HTTP /1.1
这只是两个请求的区别。
从我到目前为止的研究来看,似乎没有办法让 HttpWebRequest.Create 发布相对 URL。注意:我看到很多关于“如何使用相对 URL”的帖子,但这些建议不起作用,因为实际帖子是仍然使用绝对 URL 完成(当您嗅探 HTTP 流量时)
用相对 URL 完成这篇文章的最简单方法是什么?
(流量不通过代理)
更新:目前我正在使用 IE 自动化来进行预定的性能测试,而不是上面的方法。我可能会考虑另一种脚本语言,因为我确实想在没有任何浏览器的情况下进行测试。