我想创建一个与客户端通过JSON通信的小型Windows服务。我已经创建了一个简单的HttpListener示例,并且它可以正常工作。
我的问题是如何从客户端获取JSON数据(POST)?
谢谢
我想创建一个与客户端通过JSON通信的小型Windows服务。我已经创建了一个简单的HttpListener示例,并且它可以正常工作。
我的问题是如何从客户端获取JSON数据(POST)?
谢谢
当你从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
text
是一个空字符串,因为请求体中没有包含任何数据。如果流是Stream.Null
,我怀疑您并没有正确发送数据。我看到您现在在评论中添加了更多信息,包括两个进一步的问题 - 这些问题应该是新帖子,因为它们与原始问题无关。 - Jon Skeet