public void Configure(IApplicationBuilder app, IWebHostEnvironment env,
ILoggerFactory loggerFactory) { //允许body重用 app.Use(next => context => { context.
Request.EnableBuffering(); return next(context); }) } [HttpPost] public async
Task<string> Post() { //StreamReader sr = new StreamReader(Request.Body);
//string data = await sr.ReadToEndAsync(); string data = "";
//Request.EnableBuffering();可以实现多次读取Body Request.EnableBuffering(); StreamReader
sr= new StreamReader(Request.Body); data = await sr.ReadToEndAsync(); logger.
LogInformation("data=" + data); Request.Body.Seek(0, SeekOrigin.Begin); //再次读取
依然可以成功读到 Request.EnableBuffering(); StreamReader sr2 = new StreamReader(Request.
Body); string data2 = await sr2.ReadToEndAsync(); logger.LogInformation("data2="
+ data2); Request.Body.Seek(0, SeekOrigin.Begin); string header = $"请求头:\r\n";
foreach (var item in Request.Headers) { header += $"{item.Key}:{item.Value}\r\n"
; } logger.LogInformation(header); var ip = Request.Headers["X-Forwarded-For"].
FirstOrDefault(); if (string.IsNullOrEmpty(ip)) { //ip =
Request.HttpContext.Connection.RemoteIpAddress.ToString(); //ip =
Request.HttpContext.Connection.LocalIpAddress.MapToIPv4().ToString(); ip =
Request.HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString(); } logger.
LogInformation("ip=" + ip); }

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信