いくつかのパラメーターを使用して投稿要求を行いたい WCF サービスがあり、ファイルが返されます。サービスは問題ありません。curl を使用してテストしました。ファイルは約20MBです。このような大きなファイル用に作成されていることは知ってBackgroundDownloader
いますが、投稿要求をサポートしていません。
私のコードは次のとおりです。
var requestBody = "my parameters ...";
var handler = new HttpClientHandler { UseDefaultCredentials = true, AllowAutoRedirect = false };
var client = new HttpClient(handler);
HttpContent httpContent = new StringContent(requestBody, Encoding.UTF8, "application/json");
httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
HttpResponseMessage response = await client.PostAsync("the url...", httpContent);
response.EnsureSuccessStatusCode();
var stream = await response.Content.ReadAsStreamAsync();
///some code to store the stream to a file
問題は、コードバーがそのReadAsStreamAsync
部分に到達することであり、常に例外で失敗しA task was canceled
ます。
私は同様のコードを使用してそのサービスから文字列をダウンロードし (ReadAsStringAsync
の代わりに使用するだけですReadAsStreamAsync
)、正常に動作します。
何が問題ですか?または、これを行う適切な方法は何ですか?