2016-03-21 15 views
4

Wir haben eine einfache F # -Konsolenanwendung, die eine HTTP-POST-Anforderung an einen WebAPI-Endpunkt über FSharp.Data Http.Request sendet. Wir verwenden den Parameter customizeHttpRequest, um zu versuchen, die Eigenschaft für das Anforderungstimeout festzulegen. Unsere Nutzung ist wie folgt:FSharp.Data HTTP-Anforderung - Anforderung kann nicht festgelegt werden

let response = Http.Request(
    serviceEndpoint, 
    headers = requestHeaders, 
    body = requestBody, 
    silentHttpErrors = true, 
    customizeHttpRequest = (fun request -> request.Timeout <- 1000; request)) 

Wir beobachten, dass unsere eigene Timeout ignoriert wird (das heißt die Anforderung Timeout nicht nach 1 Sekunde, wie in diesem Beispiel). Wir haben auch beobachtet, dass die Anfrage nach dem Standard-System.Net.HttpWebRequest Timeout von 100.000ms nicht abläuft.

Gibt es hier ein Problem oder verwenden wir den Parameter customizeHttpRequest nicht korrekt?

Antwort

2

FSharp.Data verwendet die asynchrone Methode GetResponse. Gemäß MSDN wird in diesem Fall das für das Objekt HttpWebRequest festgelegte Zeitlimit nicht berücksichtigt, und die Verarbeitung des Zeitlimits muss vom Clientcode ausgeführt werden.

Leider FSharp.Data tut es nicht. Es gibt ein offenes Problem für die Implementierung here.

+0

danke scrwtp für die knappe Antwort. – daithimurf

Verwandte Themen