【问题标题】:HttpClient, catch can't connectHttpClient,catch无法连接
【发布时间】:2015-01-17 13:43:26
【问题描述】:

我有以下代码:

        ProgressMessageHandler progress = new ProgressMessageHandler();
        progress.HttpSendProgress += new EventHandler<HttpProgressEventArgs>(HttpSendProgress);
        HttpRequestMessage message = new HttpRequestMessage();
        message.Method = HttpMethod.Post;
        message.Content = content;
        message.RequestUri = new Uri("http://myaddress");
        var client = HttpClientFactory.Create(progress);
        sending = client.SendAsync(message);


    private void HttpSendProgress(object sender, HttpProgressEventArgs e)
    {
         //....
    }

我想了解“myaddress”不可用时的情况。进度处于活动状态时会调用方法 HttpSendProgress,因此,我无法签入此方法。 任何检查“myaddress”是否可用的方法。我想再启动一个线程来检查上次调用 HttpSendProgress 的时间。但也许有一个标准的方法?

【问题讨论】:

    标签: c# httpclient asynchttpclient


    【解决方案1】:

    我认为您无法在进度事件中检查该地址是否为工作地址。您需要在响应返回后检查状态。

        if (response.IsSuccessStatusCode)
        {
            Console.WriteLine(response.StatusCode.ToString());
        }
    

    How to determine a 404 response status when using the HttpClient.GetAsync()

    【讨论】:

    • 没有回复。它等待无限时间:(
    • 你设置timeout了吗? client.Timeout = Timespan.FromSeconds(30)。这应该会在 30 秒内回复并回复
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-15
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 2019-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多