2011-06-17 15 views

Respuesta

22

Savon usa la gema HTTPI como interfaz para la capa de transporte. Por lo tanto, debe cambiar el tiempo de espera para las llamadas http.

aquí un ejemplo (Savon 1.x)

jira = Savon::Client.new do 
    wsdl.document = 'http://jira.my-domain.com/rpc/soap/jirasoapservice-v2?wsdl' 
end 

jira.http.read_timeout = 300 

EDIT: la sintaxis ha cambiado para Savon 2.x

jira = Savon.client(
    wsdl: 'http://jira.my-domain.com/rpc/soap/jirasoapservice-v2?wsdl', 
    open_timeout: 300, 
    read_timeout: 300, 
    ssl_verify_mode: :none) 
p jira.operations 
+3

Si pones 'http.read_timeout = 300' dentro del bloque no va a funcionar. – pisaruk

+5

Esos son segundos por cierto. –

1

En Savon 3, la operación es como sigue:

client = Savon.new(wsdl_url) 
client.http.send_timeout = 300 
client.http.receive_timeout = 300 

En Savon 3, no puede pasarlas como opciones al constructor, pero se puede suministrar un adaptador personalizado http (para reemplazar el valor por defecto Savon :: HTTPClient) de la siguiente manera:

client = Savon.new(wsdl_url, MyAdapter.new) 
+1

A Savon realmente le gusta cambiar cómo hacen las cosas ... Gracias por la actualización. –

Cuestiones relacionadas