Savon `set_auth': 参数数量错误(2 代表 3)(ArgumentError)
Savon `set_auth': wrong number of arguments (2 for 3) (ArgumentError)
运行 ruby file.rb
, 给我 .rvm/gems/ruby-2.2.6/gems/httpclient-2.6.0.1/lib/httpclient.rb:535:in 'set_auth': wrong number of arguments (2 for 3) (ArgumentError)
file.rb:
require 'savon'
url = 'https://website.com/services/'
login = Base64.strict_encode64("2111:232330:OunOi28")
client = Savon.client(
endpoint: url,
namespace: url,
log: true,
pretty_print_xml: true,
basic_auth: "Basic #{login}"
)
response = client.call(:something)
注意:我必须发送 3 个凭据,目前将它们传递到登录变量中。
如何在客户端或客户端调用中定义这个set_auth
?
堆栈跟踪:
from .rvm/gems/ruby-2.2.6/gems/httpi-2.4.1/lib/httpi/adapter/httpclient.rb:54:in 'setup_auth'
from .rvm/gems/ruby-2.2.6/gems/httpi-2.4.1/lib/httpi/adapter/httpclient.rb:43:in 'setup_client'
from .rvm/gems/ruby-2.2.6/gems/httpi-2.4.1/lib/httpi/adapter/httpclient.rb:25:in
'request'
from .rvm/gems/ruby-2.2.6/gems/httpi-2.4.1/lib/httpi.rb:161:in 'request'
from .rvm/gems/ruby-2.2.6/gems/httpi-2.4.1/lib/httpi.rb:133:in 'post'
from .rvm/gems/ruby-2.2.6/gems/savon-2.11.1/lib/savon/operation.rb:94:in 'block in call_with_logging'
from .rvm/gems/ruby-2.2.6/gems/savon-2.11.1/lib/savon/request_logger.rb:12:in 'call'
from .rvm/gems/ruby-2.2.6/gems/savon-2.11.1/lib/savon/request_logger.rb:12:in 'log'
from .rvm/gems/ruby-2.2.6/gems/savon-2.11.1/lib/savon/operation.rb:94:in 'call_with_logging'
from .rvm/gems/ruby-2.2.6/gems/savon-2.11.1/lib/savon/operation.rb:54:in 'call'
from .rvm/gems/ruby-2.2.6/gems/savon-2.11.1/lib/savon/client.rb:36:in 'call'
from file.rb:18:in '<main>'
您不需要将 Array 传递给 :basic_auth
参数,即:
client = Savon.client(
endpoint: url,
namespace: url,
log: true,
pretty_print_xml: true,
basic_auth: [login, password] # (Whatever the password is??)
)
错误来自于源代码中的here;它需要一组用户名和密码。
有关正确用法,请参阅 Authentication section of the documentation:
Authentication
HTTP authentication will be used for retrieving remote WSDL documents
and actual SOAP requests.
basic_auth
Savon supports HTTP basic authentication.
Savon.client(basic_auth: ["luke", "secret"])
[...]
运行 ruby file.rb
, 给我 .rvm/gems/ruby-2.2.6/gems/httpclient-2.6.0.1/lib/httpclient.rb:535:in 'set_auth': wrong number of arguments (2 for 3) (ArgumentError)
file.rb:
require 'savon'
url = 'https://website.com/services/'
login = Base64.strict_encode64("2111:232330:OunOi28")
client = Savon.client(
endpoint: url,
namespace: url,
log: true,
pretty_print_xml: true,
basic_auth: "Basic #{login}"
)
response = client.call(:something)
注意:我必须发送 3 个凭据,目前将它们传递到登录变量中。
如何在客户端或客户端调用中定义这个set_auth
?
堆栈跟踪:
from .rvm/gems/ruby-2.2.6/gems/httpi-2.4.1/lib/httpi/adapter/httpclient.rb:54:in 'setup_auth'
from .rvm/gems/ruby-2.2.6/gems/httpi-2.4.1/lib/httpi/adapter/httpclient.rb:43:in 'setup_client'
from .rvm/gems/ruby-2.2.6/gems/httpi-2.4.1/lib/httpi/adapter/httpclient.rb:25:in
'request'
from .rvm/gems/ruby-2.2.6/gems/httpi-2.4.1/lib/httpi.rb:161:in 'request'
from .rvm/gems/ruby-2.2.6/gems/httpi-2.4.1/lib/httpi.rb:133:in 'post'
from .rvm/gems/ruby-2.2.6/gems/savon-2.11.1/lib/savon/operation.rb:94:in 'block in call_with_logging'
from .rvm/gems/ruby-2.2.6/gems/savon-2.11.1/lib/savon/request_logger.rb:12:in 'call'
from .rvm/gems/ruby-2.2.6/gems/savon-2.11.1/lib/savon/request_logger.rb:12:in 'log'
from .rvm/gems/ruby-2.2.6/gems/savon-2.11.1/lib/savon/operation.rb:94:in 'call_with_logging'
from .rvm/gems/ruby-2.2.6/gems/savon-2.11.1/lib/savon/operation.rb:54:in 'call'
from .rvm/gems/ruby-2.2.6/gems/savon-2.11.1/lib/savon/client.rb:36:in 'call'
from file.rb:18:in '<main>'
您不需要将 Array 传递给 :basic_auth
参数,即:
client = Savon.client(
endpoint: url,
namespace: url,
log: true,
pretty_print_xml: true,
basic_auth: [login, password] # (Whatever the password is??)
)
错误来自于源代码中的here;它需要一组用户名和密码。
有关正确用法,请参阅 Authentication section of the documentation:
Authentication
HTTP authentication will be used for retrieving remote WSDL documents and actual SOAP requests.
basic_auth
Savon supports HTTP basic authentication.
Savon.client(basic_auth: ["luke", "secret"])
[...]