Forum: Rails-ES Como hacer un XML request

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
unknown (Guest)
on 2007-06-24 00:14
(Received via mailing list)
Hola a todos, llevo googleando todo el dia y no he sido capaz de
encontrar el modo de hacer un request enviando un xml (y recibir otro
xml como respuesta)... Alguien sabe donde tengo que mirar??

Muchisimas gracias por adelantado!
javier ramirez (Guest)
on 2007-06-24 01:12
(Received via mailing list)
Hola,

una forma es tirar de la librería estándar de ruby net/http. El ejemplo
de post directamente de la
documentación
 require 'net/http'
    require 'uri'

    #1: Simple POST
    res =
Net::HTTP.post_form(URI.parse('http://www.example.com/search.cgi'),
                              {'q'=>'ruby', 'max'=>'50'})

    puts res.body

Luego si el xml de vuelta lo quieres parsear, una forma sencilla es usar
xml simple. De hecho si el post XML es a una acción rails, se parsea
automáticamente de xml a variables (suponiendo que el tipo en la
cabecera http esté bien puesto).

saludos,

javier ramírez
unknown (Guest)
on 2007-06-24 01:51
(Received via mailing list)
Recibir un xml y parsearlo es la parte que he conseguido sin
problemas. Lo que aun no he encontrado es como enviar un xml en el
request... Hay un parametro &block en get_response que parecia
prometedor, pero no he encontrado nada en la documentacion :(

Si alguien lo ha hecho estaria muy agradecido si me contara. De todas
maneras seguire dando caña a google...

Saludos!

Quoting javier ramirez <removed_email_address@domain.invalid>:
javier ramirez (Guest)
on 2007-06-24 02:03
(Received via mailing list)
es justamente lo que te copiaba en el mensaje anterior. Usas la librería
net-http y envías lo que quieras mediante el método post. Si le pones el
content-type a 'text/xml' ya lo tienes.

suerte,

javier ramirez
Antonio P. (Guest)
on 2007-06-24 04:11
(Received via mailing list)
Buenas,

On Saturday 23 June 2007 23:50:08 removed_email_address@domain.invalid wrote:
> Recibir un xml y parsearlo es la parte que he conseguido sin
> problemas. Lo que aun no he encontrado es como enviar un xml en el
> request... Hay un parametro &block en get_response que parecia
> prometedor, pero no he encontrado nada en la documentacion :(
>
> Si alguien lo ha hecho estaria muy agradecido si me contara. De todas
> maneras seguire dando caña a google...

yo suelo hacer algo así:

require 'net/http'

http_server = Net::HTTP.new('www.example.com', 80)
req = Net::HTTP::Post.new('/path')
req.content_type = 'text/xml'
req.form_data = mi_doc_xml
res = http_server.start { |http| http.request(req) }.body
return res

Ciao
This topic is locked and can not be replied to.