如何在FSharp.Data

时间:2018-04-17 15:08:03

标签: authentication f# f#-data

我一直在看FSharp.Data软件包,它看起来非常有用,并且见过how to do basic requests ...

let html = Http.RequestString("http://example.com")

我想用它来访问受密码保护的页面,但无法查看如何操作。查看HttpRequestHeaders page,看起来我应该能够传入一些标题来包含信息,但我不知道该怎么做。

该页面链接到包含以下函数的代码示例...

let BasicAuth (username:string) (password:string) =
  let base64Encode (s:string) =
    let bytes = Encoding.UTF8.GetBytes(s)
    Convert.ToBase64String(bytes)
  sprintf "%s:%s" username password |> base64Encode |> sprintf "Basic %s" |>  Authorization

...看起来像是在创建必要的信息,但我不知道接下来该怎么做。

任何人都可以提供帮助吗?感谢

1 个答案:

答案 0 :(得分:2)

BasicAuth创建Authorization HTTP标头的值。

类似的东西(改编自http://fsharp.github.io/FSharp.Data/library/Http.html):

Http.RequestString
  ( "http://example.com/...", httpMethod = "GET",
    headers = [ "Authorization", (BasicAuth "username" "password") ])

Authorization标头上有很多资源,看起来不错:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization

这个图有一个很好的图表:https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication