【问题标题】:POST received from HttpListener从 HttpListener 收到的 POST
【发布时间】:2015-04-30 18:41:03
【问题描述】:

我有一个问题: 我正在使用 HttpListener 并具有以下代码 sn-p:

while (is_active) 
        {   
            HttpListenerContext ctx = listener.GetContext ();
            Debug.Log (ctx.Request.HttpMethod);
        }

据我了解,每当侦听器收到新请求时,listener.GetContext() 函数都会返回该请求。这在接收 A GET 时工作正常。然后我的调试日志只被调用一次,但是当我收到一个 POST 时,我的调试日志被调用了 4 次:一次说 POST 来了,3 次说 GET 来了。 有谁知道它的解决方案以及为什么会发生这种情况? 干杯, 伊丽莎白

【问题讨论】:

  • 您可以编辑您的日志以包含请求数据/路径吗​​?
  • 很可能,这些确切的请求击中了你的听众。使用 Fiddler 拦截它们。
  • 嗨!当我输出 ctx.Request.Query 字符串时,它给了我以下信息。发送 POST 时,我的 Debug.Log 告诉我收到 4 个电话。一个调用是一个带有查询字符串 System.Collections.Specialized.NameValueCollection 的 POST,3 个调用是一个 GET,在 ip 地址后面带有以下查询字符串:favicon.ico 这是什么意思?什么是 Fiddler,我该如何使用它们?
  • 好的,我现在只是忽略 favicon.icon 请求,但是 Httplistener 是否也有可能忽略此请求?

标签: c# http


【解决方案1】:

显然,收到的请求比您预期的要多。这在 cmets 中得到了证实。

使用 Fiddler 检查传入的确切请求。

处理不想处理的请求的方法是

  1. 检测它们(可能使用 URL 或 HTTP 方法)
  2. 并返回错误状态代码(如 404)。

Httplistener 是否也有可能忽略此请求?

没有办法,也没有必要。只需教您的代码忽略这些请求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-07
    • 2011-08-05
    • 2014-12-19
    • 2018-08-05
    • 2012-05-10
    • 2012-10-08
    • 2017-11-25
    相关资源
    最近更新 更多