从HttpListener解析POST参数

Kis*_*son 4 c# post http 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                                            
}
Run Code Online (Sandbox Code Playgroud)

hun*_*aro 7

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

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

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

希望有所帮助 - 哈罗德


Mou*_*oot 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"]);
Run Code Online (Sandbox Code Playgroud)

  • @Bruno然而,对于其他人来说,延迟回复可能是有用的,原始响应中的"&"应该被编码,这就是为什么使用了`HttpUtility.UrlDecode`."&"应作为"&amp;"发送 (2认同)