我的脚本可以工作,但由于某种原因,它引发了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
小心,现在是秒。