【问题标题】:httplistener with post data带有发布数据的 httplistener
【发布时间】:2012-01-28 02:24:33
【问题描述】:

我正在考虑创建一个小型 Windows 服务,该服务将通过 JSON 与客户端进行通信。我创建了一个简单的 HttpListener 示例,并且工作正常。

我的问题是如何从客户端(POST)检索 JSON 数据?

谢谢

【问题讨论】:

    标签: c# json httplistener


    【解决方案1】:

    当您接受来自HttpListener 的请求时,您会收到一个HttpListenerContext。从那里,你可以得到一个HttpListenerRequest - 它有一个InputStream 属性,你可以从中读取数据。

    要读取文本数据(例如 JSON),您可以使用 ContentEncoding 属性并构建 StreamReader。例如:

    var context = listener.GetContext();
    var request = context.Request;
    string text;
    using (var reader = new StreamReader(request.InputStream,
                                         request.ContentEncoding))
    {
        text = reader.ReadToEnd();
    }
    // Use text here
    

    【讨论】:

    • 这很有趣,但 request.InputStream 有时可能是 System.IO.Stream.Null,即使我明确发送数据也是如此。另外,我如何读取不同的文件?它们是否融合到单个 InputStream 中?
    • @IvanP.:在这种情况下,我希望生成 text 和空字符串,因为请求正文中不包含任何数据。如果流是Stream.Null,我怀疑您没有实际上正确发送数据。我看到您现在在评论中添加了更多信息,包括另外两个问题 - 这些问题确实应该在新帖子中,因为它们与这个原始问题无关。
    • 感谢您的回复,但我正在尝试扩展您的答案以处理通过post发送的二进制数据
    • @IvanP.:听起来你需要问一个新问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-31
    • 2012-06-04
    • 2017-08-14
    • 1970-01-01
    • 2021-10-31
    相关资源
    最近更新 更多