JsonProvider 如何与需要身份验证的 URL 一起使用?
How can the JsonProvider be used with URLs requiring authentication?
我想做一些与 docs for FSharp.Data 中显示的非常相似的事情:
我从 (TFS) 请求的 URL 需要客户端身份验证。有什么方法可以通过传播我的 Windows 信誉来提供这个吗?我注意到 JsonProvider
有一些其他的编译时参数,但是 none 似乎支持这个。
您不必提供实时 URL 作为 JsonProvider
的类型参数;您还可以提供反映您希望看到的结构的示例文件的文件名。使用该功能,您可以执行以下步骤:
首先,登录该服务并保存反映您将要使用的 API 的 JSON 文件。
接下来,执行如下操作:
type TfsData = JsonProvider<"/path/to/sample/file.json">
let url = "https://example.com/login/etc"
// Use standard .Net API to log in with your Windows credentials
// Save the results in a variable `jsonResults`
let parsedResults = TfsData.Parse(jsonResults)
printfn "%A" parsedResults.Foo // At this point, Intellisense should work
当然,这些都是非常笼统的,因为我不知道您需要做什么才能登录到您的服务;想必您已经知道该怎么做。关键是自己检索JSON,然后使用您提供的类型的.Parse()
方法来解析它。
我想做一些与 docs for FSharp.Data 中显示的非常相似的事情:
我从 (TFS) 请求的 URL 需要客户端身份验证。有什么方法可以通过传播我的 Windows 信誉来提供这个吗?我注意到 JsonProvider
有一些其他的编译时参数,但是 none 似乎支持这个。
您不必提供实时 URL 作为 JsonProvider
的类型参数;您还可以提供反映您希望看到的结构的示例文件的文件名。使用该功能,您可以执行以下步骤:
首先,登录该服务并保存反映您将要使用的 API 的 JSON 文件。
接下来,执行如下操作:
type TfsData = JsonProvider<"/path/to/sample/file.json">
let url = "https://example.com/login/etc"
// Use standard .Net API to log in with your Windows credentials
// Save the results in a variable `jsonResults`
let parsedResults = TfsData.Parse(jsonResults)
printfn "%A" parsedResults.Foo // At this point, Intellisense should work
当然,这些都是非常笼统的,因为我不知道您需要做什么才能登录到您的服务;想必您已经知道该怎么做。关键是自己检索JSON,然后使用您提供的类型的.Parse()
方法来解析它。