tutorial rails español crear con ruby http post client net-http

español - ruby on rails



Usar Ruby para publicar una solicitud XML en un servidor web (1)

Me temo que no tengo mucha experiencia con la publicación de documentos (por ejemplo, XML) en servidores web, por lo que me disculpo si no entiendo mi comprensión de HTTP.

Tengo un servidor web Mongrel básico configurado en una aplicación de ruby ​​en 127.0.0.1 puerto 2000 . (El servidor).

Estoy ejecutando una aplicación de Ruby por separado en la misma computadora. (El cliente).

Necesito que el cliente envíe un documento XML al servidor.

He intentado usar Net :: HTTP para hacer esto, pero no puedo encontrar un ejemplo claro que me diga qué debo hacer. He tenido una oportunidad, pero encontré errores. He roto la solicitud para que sea lo más básica posible:

http = Net::HTTP.new("127.0.0.1", 2000) http.post(''file'', ''query=foo'') #xc.rb line 6

pero resulta en el siguiente error

C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:141:in `read_nonblock'': An existing connection was forcibly closed by the remote host. (Errno::ECONNRESET) from C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:141:in `rbuf_fill'' from C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:122:in `readuntil'' from C:/Ruby193/lib/ruby/1.9.1/net/protocol.rb:132:in `readline'' from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:2562:in `read_status_line'' from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:2551:in `read_new'' from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1319:in `block in transport_request'' from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1316:in `catch'' from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1316:in `transport_request'' from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1293:in `request'' from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1286:in `block in request'' from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:745:in `start'' from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1284:in `request'' from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1307:in `send_entity'' from C:/Ruby193/lib/ruby/1.9.1/net/http.rb:1096:in `post'' from W:/Ruby/A/xc.rb:6:in `<main>''

Me imagino que lo estoy haciendo totalmente mal. Por favor, ¿pueden darme un ejemplo (o señalarme un tutorial) que debería permitirme publicar algunos datos básicos, como "<tag1>text</tag1>" . Con suerte, entonces podré calcular los encabezados apropiados y manejar la respuesta.

Además, no necesito usar net / http; cualquier método gratuito que no tenga restricciones de licencia de uso comercial adicional está bien.


Esto es increíblemente fácil cuando se usa la gema del cliente resto

require ''rest_client'' response = RestClient.post "http://127.0.0.1:2000", "<tag1>text</tag1>", :content_type => "text/xml"