Nic*_*ick 1 f# c#-to-f# dotnet-httpclient f#-data
使用C#,我可以使用System.Net.Http库直接发布流,如下所示:
private async Task UploadFileAsync(Uri uri, string filename)
{
using (var stream = File.OpenRead(filename))
using (var client = new HttpClient())
{
await client.PostAsync(uri, new StreamContent(stream));
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在功能上惯用的方式在F#中做到这一点?
FSharp.Data.Http.Request允许您发布二进制数据,但需要一个字节数组来执行此操作,这意味着将流读取到内存中.我希望避免这种情况,因为我发布了> 20Mb.
以功能惯用的方式执行此操作将涉及某种IO monad.因为F#是一种混合范式语言,例如
let uploadFile (uri: Uri) fileName =
async {
use stream = File.OpenRead fileName
use client = new HttpClient()
return! client.PostAsync(uri, new StreamContent(stream)) |> Async.AwaitTask
}
Run Code Online (Sandbox Code Playgroud)
完全可以接受恕我直言.
| 归档时间: |
|
| 查看次数: |
385 次 |
| 最近记录: |