He estado mirando como hacer ping a la itunes después de salvar un
modelo,
lo tengo que hacer por medio de POST de un archivo xml o llamado a una
URL (como lo haría desde el navegador)
¿como podría hacer?
¿simplemente con open-uri y hacer un observer?
marze!
On Wed, Jul 23, 2008 at 02:04, Marcelino L. Villa [email protected]
wrote:
He estado mirando como hacer ping a la itunes después de salvar un
modelo,
lo tengo que hacer por medio de POST de un archivo xml o llamado a una
URL (como lo harÃa desde el navegador)
¿como podrÃa hacer?
¿simplemente con open-uri y hacer un observer?
marze!
open-uri no te vale, ya que únicamente permite leer, pero no escribir.
Necesitas bajar un nivel y utilizar net/http
http://www.ruby-doc.org/stdlib/libdoc/net/http/rdoc/classes/Net/HTTP.html
(modificando un poco el tercer ejemplo de Posting form data).
require ‘net/http’
require ‘uri’
uri = URI.parse(‘http://www.example.com’)
req = Net::HTTP::Post.new(uri.path)
req.body = ‘<?xml…>’
res = Net::HTTP.new(url.host, url.port).start {|http| http.request(req)
}
case res
when Net::HTTPSuccess
OK
when Net::HTTPRedirection
Seguir la redirección (mirar ejemplo en la página)
else
ERROR
end
Un poco más crudo que open-uri.
Lo único malo que le veo es que entre el request y el response de
iTunes puede pasar algo de tiempo (dependerá de la velocidad de
conexión de tu servidor y del tamaño de ese XML). Lo más recomendable
serÃa poner este código de forma que el usuario no tuviese que
esperar, ya sea mediante una petición asÃncrona del navegador o
utilizar un sistema de proceso en segundo plano y no directamente
Rails (nunca he hecho tal cosa, pero algunas personas de la lista
parece que sà que han utilizado BackgroundRb, Starling y similares).
Suerte.
2008/7/23 Daniel R. Troitiño [email protected]:
open-uri no te vale, ya que únicamente permite leer, pero no escribir.
Necesitas bajar un nivel y utilizar net/http
Para los archivos, tambien existe rest-open-uri, que es open-uri con
el resto de verbos.