4

假设我有 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                                            
}
4

2 回答 2

8

几个小时前我遇到了这个问题并提出了这个答案,希望它在解析 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"]);
于 2014-04-24T00:11:07.107 回答
7

POST 正文(从 HttpListenerRequest 上的 InputStream 读取)使用您选择用于编码 POST 数据的任何机制进行解析。

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

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

希望有帮助 - 哈罗德

于 2013-10-07T03:56:41.233 回答