0
我试图用PUT方法的文件用下面的代码上传到HTTP服务器(Apache的提卡)HttpClient.PutAsync没有立即响应结束
private static async Task<string> send(string fileName, string url)
{
using (var fileStream = File.OpenRead(fileName))
{
var client = new HttpClient();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/plain"));
var content = new StreamContent(fileStream);
content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");
var response = await client.PutAsync(url, content);
response.EnsureSuccessStatusCode();
return await response.Content.ReadAsStringAsync();
}
}
在主要的方法被称为是这样的:
private static void Main(string[] args)
{
// ...
send(options.FileName, options.Url).
ContinueWith(task => Console.WriteLine(task.Result));
}
作为响应,服务器应该返回HTTP 200和文本响应(解析的pdf文件)。我已经用Fiddler检查过这种行为,并且就服务器而言它工作正常。
不幸的是,在调用PutAsync方法之后,执行完成。
我做错了什么?
这是解决方案。谢谢!我发现我必须做好我的功课,了解异步在不同类型的应用程序上的工作方式 – Marek 2015-02-24 08:42:13