gpt4 book ai didi

visual-studio-2010 - F# 错误 FS0193 (VS 2010) : The type 'WebRequest' is not compatible with the type 'HttpWebRequest'

转载 作者:行者123 更新时间:2023-12-02 08:40:27 25 4
gpt4 key购买 nike

最近我在一个 CBIR 学生项目中工作。我们需要很多世界地标的照片。我发现这个 Flickr Crawler 项目( blogsourcecode )是用 F# 编写的。但是我在 Visual Studio 2010 中构建它时遇到错误:

错误 FS0193:类型约束不匹配。 WebRequest 类型与 HttpWebRequest 类型不兼容。 “WebRequest”类型与“HttpWebRequest”类型不兼容

第 2 行 (let req=...) 是错误发生的地方:

let downloadUrl(url:string) = 
let req = HttpWebRequest.Create(url) :> HttpWebRequest
req.UserAgent <- "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)";
req.Method <- "GET";
req.AllowAutoRedirect <- true;
req.MaximumAutomaticRedirections <- 4;
req.MaximumAutomaticRedirections <- 4;
let resp = req.GetResponse()
let stream = resp.GetResponseStream()
let reader = new StreamReader(stream)
reader.ReadToEnd()

我之前没有学过F#,所以对F#不是很熟悉。此错误消息提示什么,我该如何解决?

最佳答案

误差很小。 :> 运算符将仅执行已知在编译时成功的转换,因此不会从 HttpWebRequest.Create(url) 转换为 HttpWebRequest 因为这实际上返回一个 WebRequest。因此你需要使用

 let req = HttpWebRequest.Create(url) :?> HttpWebRequest

取而代之的是允许在继承树中的另一个方向进行转换。不同之处在于 :?> 进行的转换可能会在运行时失败(但在这种情况下不应失败,因为所有 url 都应该是 http)

关于visual-studio-2010 - F# 错误 FS0193 (VS 2010) : The type 'WebRequest' is not compatible with the type 'HttpWebRequest' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16955603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com