我们有一个简单的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是一个悬而未决的问题.