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