7

Tengo problemas para construir el cliente de jabón usando savon en los raíles 3.1. Pero puedo obtener la respuesta con éxito cuando intento hacer la solicitud desde la línea de comando curl. Mi solicitud de rizo de línea de comandos se parece a estaRails 3.1 Solicitud de jabón Savon dando tiempo de espera :: Error: Tiempo de espera :: Error ut usando curl obtengo la respuesta

curl -d @Downloads/test.xml -H "content-type: text/xml;charset=UTF-8" -H "SOAPAction: http://services.bamnetworks.com/registration/identityPoint/create" "https://qaservices.bamnetworks.com/ws/services/IdentityPointService" -v 

Desde que me dieron una respuesta perfecta como esta.

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header /><soapenv:Body><identityPoint_create_response xmlns="http://services.bamnetworks.com/registration/types/1.6"><status><code>-2000</code><message> [Duplicate credential constraint violated] [com.bamnetworks.registration.types.exception.DuplicateCredentialException]</message><exceptionClass>com.bamnetworks.registration.types.exception.DuplicateCredentialException</exceptionClass> 

Pero cuando intento hacer una solicitud del cliente Savon cada vez que estoy recibiendo el

HTTPI executes HTTP POST using the net_http adapter 
Timeout::Error: Timeout::Error 

Mi petición Savon este aspecto

client = Savon::Client.new do |wsdl, http| 
    http.auth.ssl.verify_mode = :none 
    wsdl.document = "https://qaservices.bamnetworks.com/ws/services/IdentityPointService?wsdl" 
end 

begin 

response = client.request :ns, :identityPoint_create_request do |soap, wsdl, http| 

     http.headers['SOAPAction'] = 'http://services.bamnetworks.com/registration/identityPoint/create' 
     http.headers = { "Content-Length" => "0", "Connection" => "Keep-Alive" } 
     soap.namespaces["xmlns:ns0"]="http://services.bamnetworks.com/application/types/1.0" 

     soap.header = { 
      "ns0:appCredentials" => { 
       "ns0:name"=>"XXXXXXX", 
       "ns0:password"=>"XXXXXXXXX" 
      } 
     } 
     soap.body ={ 
      :identification => { 
       :email => { 
        :address => "[email protected]" 
       }, 
       :password => { :address => { :id => 44 } } 
      }, 
      :profileProperty => { 

       :name => "birthDay", 
       :value => "17" 
      }, 
      :profileProperty =>  { 
       :name => "birthMonth", 
       :value => "8" 
      }, 
      :profileProperty =>  { 
       :name => "birthYear", 
       :value => "1986" 
      }, 
      :attributes! => { :identification => { :type => "email-password" } } 
     } 
    end 

yo no sé donde estoy cometiendo el error Si alguien me ayuda en esto para resolverlo. Gracias!

+0

que han tratado de establecer el tiempo de espera a un número más grande? Es posible que desee examinar esta pregunta http://stackoverflow.com/questions/6384230/how-to-set-savon-default-timeout-value –

Respuesta

0

Esto puede ser problema del servidor de jabón tratar de comentar la línea:

http.headers = { "Content-Length" => "0", "Connection" => "Keep-Alive" } 
Cuestiones relacionadas