【发布时间】: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 连接超时?
【问题讨论】:
-
这是正确的做法。真正的问题是什么?
-
在这个版本中,我无法自行控制连接超时,只能控制整个请求超时。我想单独配置。
-
什么意思?