gpt4 book ai didi

c# - 如何查看HTTPRequest信息

转载 作者:可可西里 更新时间:2023-11-01 16:34:44 26 4
gpt4 key购买 nike

我正在设计一个网络界面,负责与硬件进行通信。硬件联系网页并使用 POST 发送 HTTP 请求,该请求包含使用“key=value”格式的 http 包正文中的特定数据。

服务器端我有执行以下操作的代码:

public override void ProcessRequest(HttpContext curContext)
{
if (curContext != null)
{
HttpResponse response = curContext.Response;
response.Clear();
response.ContentType = "text/plain";
response.BufferOutput = true;
response.StatusCode = 200; // HttpStatusCode.OK;
response.Write(response.StatusCode.ToString());
response.End();
}
}

但我真正需要的是检查正文和检索数据(文本/纯格式)的必要代码。我对这种类型的 Web 编程还很陌生,所以我不知道要编写什么代码来查看 curContext 以获取此信息,或者我什至不知道我的覆盖方法是否正确。

我期待有像 curContext.Request.Body 这样的东西可用,但事实并非如此。如何在请求正文中查看原始 POST 数据?谁能指出我正确的方向?

谢谢

最佳答案

您需要使用 InputStream propertyHttpRequest instance 上由 Request property 返回由 HttpContext 暴露传递给您的 ProcessRequest 方法。

这将为您提供 POST 请求的内容(您可以通过在同一 HttpRequest 上调用 HttpMethod property 来验证)。

请注意,您必须使用 StreamReader为了将字节流转换为您随后要解码的字符串(因为这些键/值对应该是 url 编码的)。

幸运的是,这已经为您完成了。在 HttpRequest 实例中,您可以使用 NameValueCollectionForm property 返回使用 url 编码的键/值对检查作为 POST 请求的一部分传递的值,如下所示:

public override void ProcessRequest(HttpContext curContext)
{
if (curContext != null) return;

string value = curContext.Form["key"];

// Do other processing.
...

请注意,您还可以使用 indexer on the HttpRequest ,但这结合了 QueryString 暴露的一切 , 表单, Cookies ServerVariables在这种情况下我会说的集合是一个坏主意,因为您专门发布信息并期望在另一端。

关于c# - 如何查看HTTPRequest信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9691525/

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