iNet http客户端+;授权

iNet http客户端+;授权,http,erlang,authorization,inets,Http,Erlang,Authorization,Inets,我应该如何在httpc:request()函数发出的http请求中为客户端授权指定用户/密码???我在文档中看到HTTPOptions持有pass和user: HTTPOptions = http_options() http_options() = [http_option()] http_option() = {timeout, timeout()} | {connect_timeout, timeout()} | {ssl, ssloptions()} | {ossl, ssloption

我应该如何在httpc:request()函数发出的http请求中为客户端授权指定用户/密码???

我在文档中看到HTTPOptions持有pass和user:

HTTPOptions = http_options()
http_options() = [http_option()]
http_option() = {timeout, timeout()} | {connect_timeout, timeout()} | {ssl, ssloptions()} | {ossl, ssloptions()} | {essl, ssloptions()} | {autoredirect, boolean()} | {proxy_auth, {userstring(), passwordstring()}} | {version, http_version()} | {relaxed, boolean()} | {url_encode, boolean()}

文档:

我不认为
httpc
模块提供了这方面的便利。 尽管如此,它并不难实现(如果我们讨论的是基本的身份验证)。毕竟,它只是一个额外的请求头,带有“user:password”对Base64编码。 举个例子吧

例如,以下是使用基本身份验证运行HTTP PUT请求的方法:

auth_header(User, Pass) ->
    Encoded = base64:encode_to_string(lists:append([User,":",Pass])),
    {"Authorization","Basic " ++ Encoded}.

put_request(Url, User, Pass, Body) ->
    ContentType = "text/json",
    Headers = [auth_header(User, Pass), {"Content-Type",ContentType}],
    Options = [{body_format,binary}],
    httpc:request(put, {Url, Headers, ContentType, Body}, [], Options). 

对于digest,您需要做与basic相同的事情,但更重要的是。通常,您会在没有auth的情况下点击页面,获取“WWW-Authenticate”标题信息,然后使用领域和nonce生成“authentication”标题。底部有一个不错的例子


一般来说,HTTPS+Basic对于大多数用例来说已经足够了,如果不是更好的话。

尝试使用ibrowse,它支持并且我一直在使用它

您可能正在谈论代理授权,它由属性{proxy_auth,{userstring(),passwordstring()}指定。尽管如此,它并不能解决我的问题。Thx,它能解决问题。《文摘》怎么样?iNet似乎也不支持它。