如何使用Savon Ruby gem修复SOAP API中的Net::ReadTimeout



我的脚本可以工作,但由于某种原因,它引发了Net::ReadTimeout错误。我认为是由于大量连接到API。有没有办法用Savon延迟超时?谢谢

wsdl = 'https://org.my.domain/webservices/myservice.asmx?WSDL'
# Open Client Webservice
client = Savon.client(wsdl: wsdl, ssl_verify_mode: :none, ssl_version: :TLSv1, convert_request_keys_to: :none)
# Connect to Webservice - Authenticate
response = client.call(:authenticate, message: { username: 'user', password: 'pwd', organization: 'org', domain: 'my.domain' })

如果不能减少对API的调用量,则需要增加读取超时。事实上,你的程序应该始终尊重与之交互的资源,并允许其他程序访问它们,而不会降低性能。

如果您确实想增加读取超时,语法将取决于您使用的版本,对于2.x:版本

client = Savon.client(
wsdl: wsdl,
ssl_verify_mode: :none,
ssl_version: :TLSv1,
convert_request_keys_to: :none,
open_timeout: 400,
read_timeout: 400,
)

对于3.x:版本

client.http.send_timeout = 400
client.http.receive_timeout = 400

小心,现在是秒。

相关内容

  • 没有找到相关文章

最新更新