gpt4 book ai didi

c# - 我可以从 C# 向 IIS 发送一个空的 HTTP POST WebRequest 对象吗?

转载 作者:太空狗 更新时间:2023-10-29 17:33:32 25 4
gpt4 key购买 nike

我是否需要在 WebRequest 对象中添加一些随机垃圾数据才能通过 IIS 上的 HTTP 状态代码 411 限制?

我在 MVC 3 应用程序中有一个 HttpPost 操作方法,该方法使用 POST 请求以及在查询字符串中传递的所有相关信息(不需要正文)。

[HttpPost] public ActionResult SignUp(string email) { ... }

它在 Visual Studio 的内置 Web 主机 Cassini 中运行良好。不幸的是,一旦 MVC 代码在 IIS [2008 R2 上的 7.5] 上生效,当我从外部 C# 表单应用程序访问它时,服务器会返回一个 HTTP 错误代码。

The remote server returned an error: (411) Length Required.

调用代码如下:

WebRequest request = WebRequest.Create("http://somewhere.com/signup/?email=a@b.com");
request.Method = "POST";
using (WebResponse response = request.GetResponse())
using (Stream responseStream = response.GetResponseStream())
using (StreamReader responseReader = new StreamReader(responseStream)) {
// Do something with responseReader.ReadToEnd();
}

最佳答案

事实证明,您只需在发送请求之前在请求上添加一个空的内容长度即可完成此操作。

WebRequest request = WebRequest.Create("http://somewhere.com/signup/?email=a@b.com");
request.Method = "POST";
request.ContentLength = 0;

不确定明确给出一个空长度与暗示一个长度有何不同,但在我这样做之后 IIS 很高兴。可能还有其他解决方法,但这似乎很简单。

关于c# - 我可以从 C# 向 IIS 发送一个空的 HTTP POST WebRequest 对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5915131/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com