【问题标题】:How to specify headers for a web request如何为 Web 请求指定标头
【发布时间】:2018-03-15 01:13:29
【问题描述】:

尝试为 http 调用设置标头但遇到问题。需要Authorization 和自定义标头x-api-key 的指导。

let url = "http://example.com"
let token = requestToken()

let request = WebRequest.Create(url) :?> HttpWebRequest
request.Method <- "GET"
request.Accept <- "application/json;charset=UTF-8"
request.Headers.Authorization <- sprintf "%s %s" token.token_type token.access_token
request.Headers["x-api-key"] <- "api-key" // custom headers

// or this

request.Headers["Authorization"] <- sprintf "%s %s" token.token_type token.access_token

我得到的错误是

错误 FS3217:此表达式不是函数,无法应用。您是否打算改为通过 expr.[index] 访问索引器?

【问题讨论】:

    标签: f# http-headers http-get request-headers


    【解决方案1】:

    您收到的错误消息实际上会告诉您问题所在。在 F# 中,使用索引器的语法是 obj.[idx] - 您需要在对象和方括号之间有一个 .。在您的特定情况下,正确的语法是:

    request.Headers.["x-api-key"] <- "api-key"
    request.Headers.["Authorization"] <- sprintf "%s %s" token.token_type token.access_token
    

    【讨论】:

    • 感谢您的更正。 request.Headers.Authorization &lt;- sprintf "%s %s" token.token_type token.access_token 一直都错了吧?
    • 是的。 request.Headers.Authorization 不起作用,因为 WebHeaderCollection 类不包含 Authorization 属性。
    • 感谢 Shaun... 链接文档以供参考 msdn.microsoft.com/en-us/library/…
    猜你喜欢
    • 2011-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-22
    相关资源
    最近更新 更多