2016-03-21 71 views
4

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

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

我们正在观察,我们的定制超时被忽略(即请求不超时1秒后如本例)。我们还观察到,请求不会在默认超时100,000ms后超时。

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

回答

2

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

不幸的是FSharp.Data没有这样做。实施它有一个开放的问题here

+0

感谢scrwtp的简洁回答。 – daithimurf