HttpListener 监听POST获取参数,乱码,无法获取

zwl654984932 2017-06-19 04:25:24
需求是Winfrom程序接收POST请求,但不能依赖于IIS。所以打算用HttpListener。POST包含参数与文件(图片)。我用如下代码拿到的数据,都是乱码,没办法解析。。请问怎么才能解析出数据或者转换成Request来获取数据。
或者有其他的方式可以让winfrom程序接收POST请求??
代码如下:
using (HttpListener listerner = new HttpListener())
{
listerner.AuthenticationSchemes = AuthenticationSchemes.Anonymous;//指定身份验证 Anonymous匿名访问
listerner.Prefixes.Add("http://localhost:8080/GetData/");

// listerner.Prefixes.Add("http://localhost/GetData/");
listerner.Start();
Console.WriteLine("WebServer Start Successed.......");
while (true)
{
HttpListenerContext ctx = listerner.GetContext();
ctx.Response.StatusCode = 200;//设置返回给客服端http状态代码

//HttpWebRequest res = new HttpWebRequest();
//res.
//var context = listerner.GetContext();
var request = ctx.Request;
using (var reader = new StreamReader(request.InputStream,
Encoding.UTF8))
{
var text = reader.ReadToEnd();
var cleaned_data = System.Web.HttpUtility.UrlDecode(text);
}
listerner.Stop();
}
}
}
}
}
...全文
947 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xdashewan 2017-06-21
  • 打赏
  • 举报
回复
引用 3 楼 zwl654984932 的回复:
确定是UTF8,获取的参数中可以看到。
页面是否做了urlencode了?如果不做encode服务端就没必要UrlDecode
zwl654984932 2017-06-20
  • 打赏
  • 举报
回复
引用 2 楼 xdashewan 的回复:
你页面做了urlencode了?如果不做encode就没必要UrlDecode,再确定一下你页面编码是不是utf8
确定是UTF8,获取的参数中可以看到。
xdashewan 2017-06-19
  • 打赏
  • 举报
回复
你页面做了urlencode了?如果不做encode就没必要UrlDecode,再确定一下你页面编码是不是utf8
zwl654984932 2017-06-19
  • 打赏
  • 举报
回复
自己顶起。有大神帮忙看下,非常感谢!!

17,741

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧