我有一个winform应用程序,我正在调用webapi,它会调用Web上的另一个公共API。 winform上传文件并将文件传递给临时WebAPI,后者将其进一步传递给其他面向公众的API以供进一步处理。
我不想做的就是在我的webAPI中以任何形式保存文件中的任何数据。 这是我到目前为止所处的地方。 我正在使用Restsharp拨打电话。
public async Task<HttpResponseMessage> Post()
{
if (!Request.Content.IsMimeMultipartContent())
throw new Exception();
var provider = new MultipartMemoryStreamProvider();
await Request.Content.ReadAsMultipartAsync(provider);
var file = provider.Contents.First();
var fileName = file.Headers.ContentDisposition.FileName.Trim('\"');
//Rest call to my Public API
var publicAPIRsult = Client.CallMYpublicAPI(await file.ReadAsByteArrayAsync(), fileName);
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, publicAPIRsult.Content.ToString());
return response;
}
有没有更好的方式来打这个电话? 我在这个代码片段中获得的代码审查反馈是,它会在大量内存中使用,并且应该将数据直接传递给API调用,而不是从响应中读取它,然后将其传递过来。
任何建议的改进措施?
答案 0 :(得分:-1)