c# - 如何使用 .net 4 api 端点从 Request.Content 对象获取原始请求正文

标签 c# asp.net-web-api

我正在 try catch 原始请求数据以进行问责,并希望从 Request 对象中提取请求正文内容。

我看到过执行 Request.InputStream 的建议,但此方法在 Request 对象上不可用。

知道如何获取 Request.Content 正文的字符串表示形式吗?

Watch variable

最佳答案

在您对@Kenneth 的回答的评论中,您说 ReadAsStringAsync() 正在返回空字符串。

那是因为你(或模型 Binder 之类的东西)已经阅读了内容,所以内部流在 Request.Content 中的位置在最后。

你可以做的是:

public static string GetRequestBody()
{
    var bodyStream = new StreamReader(HttpContext.Current.Request.InputStream);
    bodyStream.BaseStream.Seek(0, SeekOrigin.Begin);
    var bodyText = bodyStream.ReadToEnd();
    return bodyText;
}

关于c# - 如何使用 .net 4 api 端点从 Request.Content 对象获取原始请求正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35589539/

相关文章:

c# - 删除换行符和空格

asp.net-mvc - 使用浏览器栏将 List<string> 传递给 MVC Web API 方法

c# - Newtonsoft.Json.Linq.JArray' 键入 'System.Collections.Generic.IEnumerable

c# - 与 ASP.NET WEB API 的动态模型绑定(bind)

c# - 预检请求返回 404 Not Found for Controllers in an Area

c# - 如何编写客户端-服务器视频流

c# - C# 中的正则表达式匹配获取不包含模式的字符串组

c# - 在列表上创建哈希值?

c# - 网络利用率 - AccountManagement 与 DirectoryServices

asp.net - 如何在 web api 2、odata 中隐藏元数据