F# F使用FSharp。数据无法正常工作

F# F使用FSharp。数据无法正常工作,f#,f#-data,F#,F# Data,我是F新手,尝试使用FSharp.Data自动化API,但我无法让基本的身份验证工作。我知道有些语法问题我无法解决。请建议如何消除代码中基本用户名\u api pwd\u api部分的此错误:此表达式的类型应为“string”,但此处的类型为“string*string” 此外,我还附上了一张图片供快速参考 这是我的测试: [<Test>] let getBasicAuthUsingData () = let Authorization (credentials:st

我是F新手,尝试使用FSharp.Data自动化API,但我无法让基本的身份验证工作。我知道有些语法问题我无法解决。请建议如何消除代码中基本用户名\u api pwd\u api部分的此错误:此表达式的类型应为“string”,但此处的类型为“string*string”

此外,我还附上了一张图片供快速参考

这是我的测试:

[<Test>]
let getBasicAuthUsingData () =
        let Authorization (credentials:string) = "Authorization", credentials

        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

        let apiURL = "http://sampleapi"


        let response = Http.RequestString( apiURL, httpMethod = "GET", headers = [ "Authorization", (BasicAuth "username_api" "pwd_api")])  
        printfn "Response of get is %s: " response

您将添加两次头的名称:首先在授权函数中,然后出于某种原因在头列表中

因此,标题列表的元素最终是Authorization,Authorization,user:pass,而不仅仅是Authorization,user:pass

Just get rid是授权字符串之一:

let response = Http.RequestString( apiURL, httpMethod = "GET", headers = [BasicAuth "username_api" "pwd_api"])