HttpClient-タスクはキャンセルされましたか?

Karthikeyan Vijayakumar:

1つまたは2つのタスクがある場合は正常に動作しますが、複数のタスクがリストされている場合は、「タスクがキャンセルされました」というエラーがスローされます。

ここに画像の説明を入力してください

List<Task> allTasks = new List<Task>();
allTasks.Add(....);
allTasks.Add(....);
Task.WaitAll(allTasks.ToArray(), configuration.CancellationToken);


private static Task<T> HttpClientSendAsync<T>(string url, object data, HttpMethod method, string contentType, CancellationToken token)
{
    HttpRequestMessage httpRequestMessage = new HttpRequestMessage(method, url);
    HttpClient httpClient = new HttpClient();
    httpClient.Timeout = new TimeSpan(Constants.TimeOut);

    if (data != null)
    {
        byte[] byteArray = Encoding.ASCII.GetBytes(Helper.ToJSON(data));
        MemoryStream memoryStream = new MemoryStream(byteArray);
        httpRequestMessage.Content = new StringContent(new StreamReader(memoryStream).ReadToEnd(), Encoding.UTF8, contentType);
    }

    return httpClient.SendAsync(httpRequestMessage).ContinueWith(task =>
    {
        var response = task.Result;
        return response.Content.ReadAsStringAsync().ContinueWith(stringTask =>
        {
            var json = stringTask.Result;
            return Helper.FromJSON<T>(json);
        });
    }).Unwrap();
}
トッド・メニア:

TaskCanceledExceptionスローされる理由は2つ考えられます。

  1. タスクが完了する前に、キャンセルトークンに関連付けられたものが呼び出さCancel()れましたCancellationTokenSource
  2. リクエストがタイムアウトしました。つまり、で指定した期間内に完了しませんでしたHttpClient.Timeout

それはタイムアウトだったと思います。(明示的なキャンセルである場合は、おそらくそれを理解しているでしょう。)例外を調べることで、より確実にすることができます。

try
{
    var response = task.Result;
}
catch (TaskCanceledException ex)
{
    // Check ex.CancellationToken.IsCancellationRequested here.
    // If false, it's pretty safe to assume it was a timeout.
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

HttpClient-タスクがキャンセルされました-正確なエラーメッセージを取得するにはどうすればよいですか?

分類Dev

HttpClientでステートメントを使用すると、タスクがキャンセルされます

分類Dev

HttpClient.SendAsyncがキャンセルされるのはなぜですか?

分類Dev

プールされたHttpClientインスタンスはCookieContainerを保持しますか?

分類Dev

竜巻はon_chunk()からhttpclient.AsyncHTTPClient fetch()をキャンセルします

分類Dev

HttpClientリクエストをキャンセルする

分類Dev

HttpClient GETWebリクエストをキャンセルする方法

分類Dev

HttpClient GETWebリクエストをキャンセルする方法

分類Dev

HttpClientのキャンセルはサーバーにキャンセルを通知しません

分類Dev

HttpClientリクエストのキャンセル-TaskCanceledException.CancellationToken.IsCancellationRequestedがfalseなのはなぜですか?

分類Dev

'HttpClient.SendAsync()'の呼び出しをキャンセルします

分類Dev

静的HttpClientでの非同期呼び出しのキャンセル

分類Dev

Javaの11でのHTTPリクエストのキャンセルのHttpClient

分類Dev

HttpClientは例外なくスタックしました

分類Dev

HttpClientはエンコードされたURLをデコードしますか?

分類Dev

HttpClientのキャンセルは、基になるTCP呼び出しを強制終了しません

分類Dev

HttpClientは、大きなチャンクリソースにアクセスするTruncatedChunkExceptionをスローします

分類Dev

C#HttpClientまたはHttpWebRequestクラス

分類Dev

子タスクがキャンセルされ、親が完了しましたか?

分類Dev

タスクがキャンセルされました

分類Dev

タスクがキャンセルされましたXamarinException

分類Dev

キャンセルされたかどうかをチェックしないTPLタスクはキャンセルできますか?

分類Dev

HttpClientインターセプターの再試行ユニットテスト(オープンリクエストがないことが予想され、1が見つかりました)

分類Dev

C#HttpClientトレースがスタックしました

分類Dev

HttpClientFactoryによって作成されたHttpClientインスタンスを破棄する必要がありますか?

分類Dev

httpclient:ステータス200アーメンを取得しました!それで?

分類Dev

Clojureの中HTTPClientのCookieストアにセレンwebdriverをからクッキーを渡すために失敗しました。

分類Dev

Angular 6HttpClientはクラスのインスタンスを返します

分類Dev

アプリケーションライフサイクル用の単一のHttpClient-HttpClientのこの単一のインスタンスは、正しい要求に応答したことをどのように保証しますか?

Related 関連記事

  1. 1

    HttpClient-タスクがキャンセルされました-正確なエラーメッセージを取得するにはどうすればよいですか?

  2. 2

    HttpClientでステートメントを使用すると、タスクがキャンセルされます

  3. 3

    HttpClient.SendAsyncがキャンセルされるのはなぜですか?

  4. 4

    プールされたHttpClientインスタンスはCookieContainerを保持しますか?

  5. 5

    竜巻はon_chunk()からhttpclient.AsyncHTTPClient fetch()をキャンセルします

  6. 6

    HttpClientリクエストをキャンセルする

  7. 7

    HttpClient GETWebリクエストをキャンセルする方法

  8. 8

    HttpClient GETWebリクエストをキャンセルする方法

  9. 9

    HttpClientのキャンセルはサーバーにキャンセルを通知しません

  10. 10

    HttpClientリクエストのキャンセル-TaskCanceledException.CancellationToken.IsCancellationRequestedがfalseなのはなぜですか?

  11. 11

    'HttpClient.SendAsync()'の呼び出しをキャンセルします

  12. 12

    静的HttpClientでの非同期呼び出しのキャンセル

  13. 13

    Javaの11でのHTTPリクエストのキャンセルのHttpClient

  14. 14

    HttpClientは例外なくスタックしました

  15. 15

    HttpClientはエンコードされたURLをデコードしますか?

  16. 16

    HttpClientのキャンセルは、基になるTCP呼び出しを強制終了しません

  17. 17

    HttpClientは、大きなチャンクリソースにアクセスするTruncatedChunkExceptionをスローします

  18. 18

    C#HttpClientまたはHttpWebRequestクラス

  19. 19

    子タスクがキャンセルされ、親が完了しましたか?

  20. 20

    タスクがキャンセルされました

  21. 21

    タスクがキャンセルされましたXamarinException

  22. 22

    キャンセルされたかどうかをチェックしないTPLタスクはキャンセルできますか?

  23. 23

    HttpClientインターセプターの再試行ユニットテスト(オープンリクエストがないことが予想され、1が見つかりました)

  24. 24

    C#HttpClientトレースがスタックしました

  25. 25

    HttpClientFactoryによって作成されたHttpClientインスタンスを破棄する必要がありますか?

  26. 26

    httpclient:ステータス200アーメンを取得しました!それで?

  27. 27

    Clojureの中HTTPClientのCookieストアにセレンwebdriverをからクッキーを渡すために失敗しました。

  28. 28

    Angular 6HttpClientはクラスのインスタンスを返します

  29. 29

    アプリケーションライフサイクル用の単一のHttpClient-HttpClientのこの単一のインスタンスは、正しい要求に応答したことをどのように保証しますか?

ホットタグ

アーカイブ