在FSharp.Data网站http://fsharp.github.io/FSharp.Data/library/Http.html中可以找到以下代码段。 TextBinary的类型分别为stringbyte[]。将整个2GB的文件存储在内存中,然后将其保存到文件中是不好的。

let logoUrl = "https://raw.github.com/fsharp/FSharp.Data/master/misc/logo.png"
match Http.Request(logoUrl).Body with
| Text text ->
    printfn "Got text content: %s" text
| Binary bytes ->
    printfn "Got %d bytes of binary content" bytes.Length

最佳答案

我不认为您可以保留与FSharp.Data网站上相同的代码来下载大文件。
我用来下载大文件的是

async {
    let! request = Http.AsyncRequestStream(logoUrl)
    use outputFile = new System.IO.FileStream(fileName,System.IO.FileMode.Create)
    do! request.ResponseStream.CopyToAsync( outputFile ) |> Async.AwaitTaskVoid
} |> Async.RunSynchronously

如果您想尝试下载无限文件检查the complete source(需要您自担风险,它正在使用The Infinite File Download)

关于f# - 如何使用FSharp.Data的http模块下载大文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24870998/

10-12 02:55