f# – FSharp.Data HTTP请求 – 无法设置请求超时

我们有一个简单的F#控制台应用程序,它通过FSharp.Data Http.Request向WebAPI端点发送HTTP POST请求.我们使用customizeHttpRequest参数来尝试设置请求超时属性.我们的用法如下:

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

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

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

最佳答案 FSharp.Data使用异步GetResponse方法.根据
MSDN,在这种情况下,不考虑在HttpWebRequest对象上设置的超时,并且处理超时留给客户端代码实现.

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

点赞