Tôi đang cố gắng sử dụng N-UNIT để kiểm tra ứng dụng API web của tôi nhưng tôi không thể tìm được cách thích hợp để kiểm tra phương pháp tải lên tệp của tôi. Đó sẽ là phương pháp tốt nhất để kiểm tra phương pháp?Thử nghiệm ASP.NET Web API Tệp Dữ liệu Biểu mẫu Multipart tải lên
điều khiển APIWeb:
[AcceptVerbs("post")]
public async Task<HttpResponseMessage> Validate()
{
// Check if the request contains multipart/form-data.
if (!Request.Content.IsMimeMultipartContent())
{
return Request.CreateErrorResponse(HttpStatusCode.UnsupportedMediaType,"please submit a valid request");
}
var provider = new MultipartMemoryStreamProvider(); // this loads the file into memory for later on processing
try
{
await Request.Content.ReadAsMultipartAsync(provider);
var resp = new HttpResponseMessage(HttpStatusCode.OK);
foreach (var item in provider.Contents)
{
if (item.Headers.ContentDisposition.FileName != null)
{
Stream stream = item.ReadAsStreamAsync().Result;
// do some stuff and return response
resp.Content = new StringContent(result, Encoding.UTF8, "application/xml"); //text/plain "application/xml"
return resp;
}
}
return resp;
}
catch (System.Exception e)
{
return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e);
}
}
tại sao không sử dụng HttpClient từ System.Net.Http? –
Tôi không nghĩ HttpClient có tệp tải lên được thiết kế đặc biệt để tải lên tệp. – Muhammad