FSharp.Data HTTP 请求 - 无法设置请求超时

dai*_*urf 5 f# f#-data

我们有一个简单的 F# 控制台应用程序,它通过FSharp.Data Http.Request. 我们正在使用该customizeHttpRequest参数来尝试设置请求超时属性。我们的用法如下:

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

我们观察到我们的自定义超时被忽略(即请求在 1 秒后不会超时,如本例所示)。System.Net.HttpWebRequest我们还观察到,在默认超时 100,000ms后,请求不会超时。

这里有问题吗,还是我们没有customizeHttpRequest正确使用参数?

scr*_*wtp 3

FSharp.Data 使用异步GetResponse方法。根据MSDN 的HttpWebRequest说法,在这种情况下,不会考虑对象上设置的超时,而处理超时则留给客户端代码来实现。

不幸的是 FSharp.Data 不这样做。这里有一个实施它的悬而未决的问题。