2017-11-08 7 views
0

Ich muss ein TCP-Verbindungstimeout für einen HttpClient konfigurieren. Derzeit verwende ich das normale Zeitlimit, das für die gesamte Anfrage verwendet wird, aber es ist nicht genug, um die POSTs meiner Anwendung korrekt zu steuern.Timeout-TCP-Verbindung in HttpClient

 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 

¿Gibt es eine Möglichkeit die TCP-Verbindung Timeout für eine Httpclient zu konfigurieren?

Wenn die letzte Frage nicht erreichbar ist ¿Ist es möglich, das TCP-Verbindungstimeout für eine HttpWebRequest zu konfigurieren?

+0

dies ist der richtige Weg, es zu tun. Was ist das eigentliche Problem? – Chillzy

+0

In dieser Version kann ich das Verbindungszeitlimit nicht selbst steuern, nur die gesamte Zeitüberschreitung der Petition. Ich möchte es separat konfigurieren. – miguelg93

+0

was meinst du? – Chillzy

Antwort

0

Das Timeout für httpclient sollte standardmäßig auf 100 Sekunden eingestellt werden.
Beispiel des Timeout auf 5 Minuten:

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