C# 从HttpListener解析POST参数

C# 从HttpListener解析POST参数,c#,http,post,httplistener,C#,Http,Post,Httplistener,假设我有HttpListener。它监听一些端口和ip。当我发送POST请求时,它会捕获它。如何从HttpListenerRequest解析POST参数 HttpListenerContext context = listener.GetContext(); HttpListenerRequest request = context.Request; if ( request.HttpMethod == "POST" ) { // Here i can read all parameter

假设我有HttpListener。它监听一些端口和ip。当我发送POST请求时,它会捕获它。如何从HttpListenerRequest解析POST参数

HttpListenerContext context = listener.GetContext();
HttpListenerRequest request = context.Request;

if ( request.HttpMethod == "POST" )
{
  // Here i can read all parameters in string but how to parse each one i don't know                                            
}
POST主体(从HttpListenerRequest上的InputStream读取)使用您选择的任何机制来解析POST数据

例如,您可以使用浏览器中JavaScript对象上的JSON.stringify调用发送JSON。在这种情况下,您可以在.Net或JSON.Net中使用JSON反序列化程序

或者,您可以选择发送XML、CSV或其他完全不同的内容


希望这有帮助-Harold几小时前我遇到了这个问题,并给出了这个答案,希望在解析POST数据时能对某人有所帮助

//using System.Web and Add a Reference to System.Web
Dictionary<string, string> postParams = new Dictionary<string, string>();
string[] rawParams = rawData.Split('&');
foreach (string param in rawParams)
{
    string[] kvPair = param.Split('=');
    string key = kvPair[0];
    string value = HttpUtility.UrlDecode(kvPair[1]);
    postParams.Add(key, value);
}

//Usage
Console.WriteLine("Hello " + postParams["username"]);
//使用System.Web并添加对System.Web的引用
字典后参数=新字典();
字符串[]rawParams=rawData.Split('&');
foreach(rawParams中的字符串参数)
{
字符串[]kvPair=param.Split('=');
字符串键=kvPair[0];
字符串值=HttpUtility.UrlDecode(kvPair[1]);
postParams.Add(键、值);
}
//用法
Console.WriteLine(“Hello”+postParams[“username”]);

这里有什么没有回答?()您不需要解析它。.在
HttpListenerRequest
request.QueryString
request.ContentType
request.Headers
…中有它的属性。请看一下这个线程:@KevinDTimm我没有看到任何方法或属性可以在键值对中获取POST参数。也许我错过了什么?谢谢你的回答。我通过在请求中使用json解决了这个问题。如果原始响应中有符号“&”,该怎么办?说{“name”:“Slug&莴苣”}@Bruno Late reply不过对其他人可能有用,&“原始响应中的”应该被编码,这就是为什么使用了
HttpUtility.UrlDecode
。“&”应以“谢谢”的形式发送。你救了我!