サーバーに非同期要求を送信し、応答ストリームから情報を取得する必要があります。 私はHttpClient.GetStreamAsync()を使用していますが、POSTが使用されるべきサーバーの応答です。 PostStreamAsync()のような同様のメソッドがありますか?ありがとうございました。c#:非同期リクエストを投稿し、httpclientでストリームを取得する方法
4
A
答えて
0
HttpClientではなく、HttpWebRequestを使用する必要がありますか?
これらは、非同期の方法と、method
プロパティを設定することによって、postとgetの間で切り替えることができます。
例えば:
var request = (HttpWebRequest) WebRequest.Create(uri);
request.Method = "POST";
var postStream = await request.GetRequestStreamAsync()
2
使用HttpClient.PostAsync
、あなたがHttpResponseMessage.Content.ReadAsStreamAsync()
メソッドを介して応答ストリームを取得することができます。
var message = await client.PostAsync(url, content);
var stream = await message.Content.ReadAsStreamAsync();
1
あなたは、あなたがメモリにストリーム全体を読んでいましたPostAsync
原因message.Content.ReadAsStreamAsync
を使用してはならない大規模なデータをストリーミングするためHttpClient
を使用したい場合。代わりに、次のコードブロックを使用することができます。
var message = new HttpRequestMessage(HttpMethod.Post, "http://localhost:3100/api/test");
var response = await client.SendAsync(message, HttpCompletionOption.ResponseHeadersRead);
var stream = await response.Content.ReadAsStreamAsync();
ここで重要なことは、メモリに全体の内容を読み取ることがないクライアントに指示HttpCompletionOption.ResponseHeadersRead
オプションです。
関連する問題
- 1. 非同期でコメントを投稿する
- 2. C#HttpClient POST非同期
- 3. 非同期ワークフロー内でHttpClientタイムアウトを取得する
- 4. C#WPFで非同期のWebリクエストを作成する方法
- 5. arangodb、投稿リクエストからJSONを取得する方法
- 6. 目的C:ソケットを使用した投稿/取得リクエスト
- 7. Web API 2 - 非同期投稿
- 8. Android非同期クラス投稿機能
- 9. 投稿方法リクエスト/フォーム投稿
- 10. RiotjsでAjax非同期リクエストを取得する
- 11. 投稿時に空のリクエストを取得
- 12. ffmpegからの出力を非同期でストリームする方法
- 13. HttpClient(または他のHTTPクラス)を使用してJSONを非同期に取得する方法
- 14. サーバへの非同期リクエストがループ内に投稿されました - Android
- 15. cでプロパティゲッターの非同期サービスコール結果を取得する方法
- 16. Visual C++でファイルを非同期で読み取る方法は?
- 17. リクエストにタグを設定してResponse Volleyの非同期リクエストから取得する方法は?
- 18. 投稿方法リクエストAlamofire
- 19. 投稿リクエストでエラー417を取得しています
- 20. 同じカテゴリの投稿を非表示にする方法
- 21. Objective CにSOAPリクエストを投稿する方法は?
- 22. 非同期Webリクエストのマルチスレッド化方法
- 23. 非同期URLリクエストの送信方法
- 24. Curlで投稿した後にURLを取得する方法
- 25. djangoでブロブを投稿して取得する方法
- 26. C#HTTPClientフォーム投稿と送信問題
- 27. 投稿を送信し、RequestHandlerに手動でリクエストを取得
- 28. 投稿と同じメソッドシグネチャを取得
- 29. 非同期html属性を取得する方法
- 30. 非同期関数の結果を取得する方法は?
ストリーム全体がメモリに読み込まれることに注意してください。これは主に、ユーザーがストリーミングを使用する予定のときに期待するものではありません。 – lanwin