3

サービスを待つために HttpClient を作成しました。これは非同期関数のスレッドで実行されます。問題は、サービスが 2 ~ 3 分後に応答を送信することです。現時点では、サーバーから正常な応答を受け取る前にタスクがキャンセルされます。応答を 2、3 分以上待つ可能性はありますか? 次の私のコードでは:

private async Task<string> loginService()
    {
        try
        {
            string post_data = "user_data";

            string uri = "http://myserver.de";

            HttpClient httpClient = new HttpClient();
            httpClient.MaxResponseContentBufferSize = 256000;
            httpClient.DefaultRequestHeaders.Add("user-agent", "Mozilla/5.0 (compatible; MSIE 10.0; WIndows NT 6.2; WOW64; Trident/6.0)");

            HttpContent content = new FormUrlEncodedContent(new[]
            {
                new KeyValuePair<string, string>("data", post_data)
            });

            HttpResponseMessage response = await httpClient.PostAsync(new Uri(uri), content);
            response.EnsureSuccessStatusCode();
            string responseBodyAsText = await response.Content.ReadAsStringAsync();
            return responseBodyAsText;
        }
        catch
        {
            return "Error...";
        }
    }

3 分後に応答を得るには、どの方法が最適ですか?

4

1 に答える 1

1

タイムアウトのデフォルト値は100秒です。Timeoutプロパティを使用して、HTTPClientのタイムアウトを3分(またはそれ以上)まで上げることができます。

 httpClient.Timeout = new TimeSpan(0,3,0);
于 2012-10-01T13:28:05.270 に答える