【发布时间】:2015-06-23 19:08:42
【问题描述】:
我正在尝试将文件上传到服务器。一旦用户使用应用程序拍摄照片并接受它,照片就会上传。但是,如果用户在上一张照片仍在上传时选择拍摄另一张照片,则上传过程将被取消并抛出AggregateException。我需要上传多个以避免这种情况。
这里是我用来上传文件的代码:
private async Task<T> ExecuteHttpPost<T>(string url, HttpContent content) where T : BaseServerResponseModel
{
try
{
using (HttpClient client = new HttpClient())
{
HttpStatusCode statusCode = HttpStatusCode.OK;
if (BeforeRequestPerformListener != null)
{
if (!BeforeRequestPerformListener(this, new BeforeRequestEventArgs(url, null)))
{
return null;
}
}
var response = await client.PostAsync(url, content);
if (ResponseRecivedListener != null)
{
ResponseRecivedListener(this, response);
}
statusCode = response.StatusCode;
response.EnsureSuccessStatusCode();
var entityResponse = await response.GetJsonResponse<T>();
entityResponse.ThrowIfNoSuccess();
return entityResponse;
}
}
catch (Exception e)
{
throw;
}
return null;
}
我还尝试将整个代码包装到 Task.Run 中,但仍然抛出相同的异常。
我错过了什么?
旁注:如果我等待照片完成,照片确实会上传到服务器。只有当我在上传时打开相机时才会发生异常
【问题讨论】:
-
是的,正好在 await client.PostAsync(url, content)
标签: c# camera windows-phone-8.1 task dotnet-httpclient