顾名思义,
ReadAsMultipartAsync
是一个
作用因为你没有在等电话,所以你很可能会遇到这样的情况:你试图访问
Contents
在填充之前。
要解决此问题,您可以更新
CreateOrder
public async Task<OrderRequest> CreateOrder(OrderRequest orderRequest)
{
...
await this.Request.Content.ReadAsMultipartAsync(provider);
...
}
这里所改变的只是增加了
async
之前
Task<OrderRequest>
await
之前
this.Request.Content.ReadAsMultipartAsync(provider);
. 您还需要添加
等候
之前
content.ReadAsByteArrayAsync();
出于同样的原因,然后你可以
return null
Task.FromResult
最后。
事实上,以下是这些更改的全部代码:
public async Task<OrderRequest> CreateOrder(OrderRequest orderRequest)
{
try
{
var asdf = OwinHttpRequestMessageExtensions.GetOwinContext(Request);
if (!Request.Content.IsMimeMultipartContent("multipart/form-data"))
{
var provider = new MultipartMemoryStreamProvider();
await this.Request.Content.ReadAsMultipartAsync(provider);
var content = provider.Contents.First();
var buffer = await content.ReadAsByteArrayAsync();
}
var test = orderRequest;
var a = HttpContext.Current.Request.Files;
}
catch (Exception ex)
{
throw ex;
}
return null;
}