带有发布数据的 httplistener
Posted
技术标签:
【中文标题】带有发布数据的 httplistener【英文标题】:httplistener with post data 【发布时间】:2012-01-28 02:24:33 【问题描述】:我正在考虑创建一个小型 Windows 服务,该服务将通过 JSON 与客户端进行通信。我创建了一个简单的 HttpListener 示例,并且工作正常。
我的问题是如何从客户端(POST)检索 JSON 数据?
谢谢
【问题讨论】:
【参考方案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.:听起来你需要问一个新问题。以上是关于带有发布数据的 httplistener的主要内容,如果未能解决你的问题,请参考以下文章