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.
29df64447056e5247a5b847a1ef12e0a?d=identicon&s=25 unknown (Guest)
on 2007-06-23 22: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!
1f2eadfb41362800ebc2cf211b91d0f7?d=identicon&s=25 javier ramirez (Guest)
on 2007-06-23 23: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
29df64447056e5247a5b847a1ef12e0a?d=identicon&s=25 unknown (Guest)
on 2007-06-23 23: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 <jramirez@aspgems.com>:
1f2eadfb41362800ebc2cf211b91d0f7?d=identicon&s=25 javier ramirez (Guest)
on 2007-06-24 00: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
57a3642924acdd37d03fbdbe0aef6c65?d=identicon&s=25 Antonio Pardo (Guest)
on 2007-06-24 02:11
(Received via mailing list)
Buenas,

On Saturday 23 June 2007 23:50:08 jgarcia@saig.es 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.