从HttpListener解析POST参数

时间:2013-09-26 14:45:58

标签: 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 parameters in string but how to parse each one i don't know                                            
}

2 个答案:

答案 0 :(得分:7)

使用您选择用POST编码POST数据的任何机制来解析POST主体(从HttpListenerRequest上的InputStream读取)。

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

或者,您可以选择完全发送XML,CSV或其他内容。

希望有所帮助 - 哈罗德

答案 1 :(得分:6)

几个小时前我遇到了这个问题并且发出了这个答案,希望在解析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"]);