c# 服务端接收post过来的body内容
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# 服务端接收post过来的body内容相关的知识,希望对你有一定的参考价值。
由于post数据比较大,导致header根本发送不了,如果客户端把内容放到body里按照键值对发送的话,服务端怎么接收呢,希望有源码,给高分~~
参考技术A 理论上 post 并没有数据限制的!!!!所有,也没有说发送不了的说法。
除非———
你的 WEB Server 限制了大小。去改一下你的 IIS 或 APACHE 之类的吧。。。 参考技术B var request = System.Web.HttpContext.Current.Request;
var dataBody = "";
long? length = request.ContentLength;
if (length != null && length > 0)
// 使用这个方式读取,并且使用异步
StreamReader streamReader = new StreamReader(request.InputStream, Encoding.UTF8);
dataBody = streamReader.ReadToEndAsync().Result;
参考技术C request[key].tostring(); 就可以了,你再试试 参考技术D Request.InputStream就是过来的内容本回答被提问者采纳
C# .NET MVC 接收 JSON ,POST,WCF 无缝隙切换
用来与HTTP 模式的WCF 无缝隙切换。
服务端是MVC。
在Home/About 上面加 [HttpPost]。读取Request.InputStream 中所有内容。然后返回JSON给客户端:return Json(c1);。
[HttpPost] public ActionResult About() { string dfCharSet = "utf-8"; if (Request.QueryString["charset"] != null) dfCharSet = Request.QueryString["charset"]; Encoding ec = Encoding.GetEncoding(dfCharSet); string inStr = string.Empty; using (StreamReader sr = new StreamReader(Request.InputStream, ec)) { inStr = sr.ReadToEnd(); } Models.Class1 c1 = new Models.Class1(); c1.name = "服务器"; c1.inStr = inStr;
Response.ContentEncoding = ec; return Json(c1); }
客户端。POST JSON 到服务端,接收服务端返回的JSON。建议用HttpWebRueqest.
try { Class1 c1 = new Class1(); c1.name = "客户端"; c1.inStr = ""; string input = JsonConvert.SerializeObject(c1); byte[] bts = Encoding.UTF8.GetBytes(input); byte[] btRst; using (WebClient wc = new WebClient()) { string url = "http://localhost:52844/Home/About"; wc.Encoding = Encoding.UTF8; btRst = wc.UploadData(url, "post", bts); } string rst = Encoding.UTF8.GetString(btRst); MessageBox.Show(rst); } catch (Exception ex) { MessageBox.Show(ex.Message); }
-
以上是关于c# 服务端接收post过来的body内容的主要内容,如果未能解决你的问题,请参考以下文章