我们有一个简单的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
参数?
答案 0 :(得分:2)
FSharp.Data使用异步GetResponse
方法。根据{{3}},在这种情况下,不考虑HttpWebRequest
对象上设置的超时,并且处理超时留给客户端代码实现。
不幸的是FSharp.Data没有这样做。实施它是一个悬而未决的问题MSDN。