c# - 从 Web API 方法获取原始 POST 数据

标签 c# asp.net-web-api

我在 ApiController 类中有以下 Web API 方法:

public HttpResponseMessage Post([FromBody]byte[] incomingData)
{
  ...
}

我希望 incomingData 成为 POST 的原始内容。但似乎 Web API 堆栈尝试使用 JSON 格式化程序解析传入数据,这导致客户端的以下代码失败:

new WebClient().UploadData("http://localhost:15134/api/Foo", new byte[] { 1, 2, 3 });

有没有简单的解决方法?

最佳答案

对于遇到此问题的任何其他人,解决方案是定义不带参数的 POST 方法,并通过 Request.Content 访问原始数据:

public HttpResponseMessage Post()
{
  Request.Content.ReadAsByteArrayAsync()...
  ...

关于c# - 从 Web API 方法获取原始 POST 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13226817/

相关文章:

c# - 使用 Dictionary<string, object> 作为 Dictionary<string, Dictionary<string, string>>

c# - 每个请求的 log4net.GlobalContext.Properties 是否不同?

c# - 在 Asp.net Web 服务中集成 JWT

c# - 解释 expression.Compile()() 中的 2 对括号

c# - 我应该绑定(bind)到 ICollectionView 还是 ObservableCollection

c# - 最简单的并发模式

c# - 包含反斜杠的路径字符串无法识别的转义序列

asp.net - 为什么在 IIS 之外托管被称为自托管?

cordova - 如何从 Cordova Azure 验证应用程序查询 Azure Web API

c# - N 替代和协方差支持?