You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在bet365/soap Erlang包中添加Authorization头发送SOAP请求

如何给bet365/soap生成的Erlang SOAP客户端添加Authorization请求头?

不用纠结Erlang的语法细节,结合你懂的Elixir基础,这个需求其实很好实现。

首先明确:你需要修改的是第三个参数_Soap_options,这个参数就是用来传递HTTP请求相关配置项的。

bet365/soap底层依赖Erlang的httpc模块,所以我们可以通过http_options选项注入自定义HTTP头。具体格式是在_Soap_options的列表里新增一个元组:

{http_options, [{header, {"Authorization", "Basic <你的base64编码串>"}}]}

把你原来的测试代码修改后,最终版本应该是这样:

connectionCheck() ->
    % 替换成你实际的base64编码串(格式是"用户名:密码"转base64)
    AuthHeader = {"Authorization", "Basic dXNlcjpwYXNzd29yZA=="},
    'WsdlService_client':connectionCheck(
        #'P:connectionCheck'{ clientSoftwareKennung = "Elixir"},
        _Soap_headers = [],
        _Soap_options = [
            {url,"http://localhost:8091/myservice/v2.0/connectionCheck"},
            {http_options, [{header, AuthHeader}]}
        ]
    ).

给你个小便利提示:你有Elixir基础的话,生成base64编码串可以直接用Elixir的Base.encode64("用户名:密码")来搞定,比如Base.encode64("admin:123456")会生成对应的编码值,直接复制到Erlang代码里就行。

内容的提问来源于stack exchange,提问作者quax

火山引擎 最新活动