【问题标题】:Timeout TCP Connection in HttpClientHttpClient中的超时TCP连接
【发布时间】:2017-11-08 11:27:35
【问题描述】:

我需要为 HttpClient 配置 TCP 连接超时。目前我正在使用用于整个请求的正常超时,但这不足以正确控制我的应用程序的 POST。

     Using client As New HttpClient()
                Dim bArrayCredentials As Byte() = Encoding.UTF8.GetBytes(ConfigurationManager.AppSettings("LDAPUser") & ":" & ConfigurationManager.AppSettings("LDAPPass"))
                client.DefaultRequestHeaders.Authorization = New AuthenticationHeaderValue("Basic", Convert.ToBase64String(bArrayCredentials))
                client.Timeout = TimeSpan.FromSeconds(CDbl(ConfigurationManager.AppSettings("TimeoutResponseLoginTVS")))                   

                client.BaseAddress = New Uri(ConfigurationManager.AppSettings("URLLogin"))
                Dim peticion = JsonConvert.SerializeObject(objPeticion)
                Dim content As New StringContent(peticion, System.Text.Encoding.UTF8, "application/json")
                Dim response As HttpResponseMessage = client.PostAsync(page, content).Result
                If IsResponseValid(response.StatusCode) Then
                    Dim result As String = response.Content.ReadAsStringAsync().Result
                    Return result
                End If

                Return Nothing
            End Using

¿有没有办法为 HttpClient 配置 TCP 连接超时?

如果最后一个问题无法回答 ¿ 是否可以为 HttpWebRequest 配置 TCP 连接超时?

【问题讨论】:

  • 这是正确的做法。真正的问题是什么?
  • 在这个版本中,我无法自行控制连接超时,只能控制整个请求超时。我想单独配置。
  • 什么意思?

标签: vb.net post timeout


【解决方案1】:

默认情况下,httpclient 的超时时间应设置为 100 秒。
示例将超时设置为 5 分钟:

Dim Timeout As TimeSpan = TimeSpan.FromMinutes(5)
client.Timeout = Timeout

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-16
    • 2016-11-15
    相关资源
    最近更新 更多