F# 数据使用 Windows 凭据进行 http 请求

3

我想从启用了Windows身份验证的IIS主机页面中获取一些HTML。

到目前为止,我已经完成了以下内容:

open FSharp.Data

[<EntryPoint>]
let main argv = 
    let html = Http.RequestString ("http://mywebsite.com/Detail.aspx", query=[("zip","9000");("date","11/01/2017")], headers=[???])

    printf "%s" html
    System.Console.ReadLine() |> ignore
    0 // return an integer exit code

我需要在头部列表中添加什么内容?


你是否考虑过使用标准的.NET Web请求构建?例如,可以查看此页面,其中详细介绍了Windows身份验证的相关信息:https://dev59.com/kHA65IYBdhLWcg3w7DP8 - Anton Schwaighofer
1个回答

5

我同意Anton的观点,如果你需要进一步自定义,则使用原始的.NET API进行请求可能更容易。话虽如此,RequestString确实有一个参数customizeHttpRequest,它允许您指定在发送请求之前设置请求的其他属性的函数,因此您可以使用以下代码来设置Credentials属性:

open System.Net

let html = 
  Http.RequestString("http://mywebsite.com/Detail.aspx", 
    query=[("zip","9000");("date","11/01/2017")], 
    customizeHttpRequest = fun r ->
      r.Credentials <- new NetworkCredential( "username", "password", "domain" )
      r) 

想了解更多要配置哪些属性,请查看Anton在评论中提到的.NET问题页面


2
自定义HttpRequest = fun r -> r.UseDefaultCredentials <- true r 解决了问题,谢谢。 - user1613512

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接