Posts Tagged xmlrpc

ruby xmlrpc client

Mi sono ritrovato in questi giorni a dover scrivere un
client xmlrpc in ruby (per una applicazione rails, invero) e abituato a vedere queste cose funzionare in 5 minuti, mi sono perso quando ho visto che non funzionava.

Un client xmlrpc in ruby si scrive molto semplicemente più o meno così:

uri = "http://example_of_url:8000/"

server = XMLRPC::Client.new2(uri)

return = server.call('function')

Molto semplice, quindi, ma nel mio caso non funzionava con
il server xmlrpc a cui tentavo di connettermi. Eppure
questo server, scritto in erlang, funzionava: un client
xmlrpc in PHP infatti, riusciva a collegarsi senza problemi.

Poteva essere un problema del mio client, ma tentando
la connessione con altri server xmlrpc, funzionava correttamente.

Dove stava quindi il problema, che mi generava un “HTTP Error 415 – Unsupported media type”?

Il server xmlrpc scritto in erlang, confondeva il client ruby in quanto non forniva il Content-Type in modo corretto, o meglio, non lo forniva proprio. Per far funzionare il tutto, ho modificato le librerie ruby di xmlrpc, file

/usr/lib/ruby/1.8/xmlrpc/client.rb

riga 503, modificando:

"Content-Type"   => "text/xml; charset=utf-8",

in:

"Content-Type"   => "text/xml ",

e il file

/usr/lib/ruby/1.8/xmlrpc/utils.rb

nella funzione

parse_content_type

ho dovuto ridefinire str = “text/xml”. A questo punto, il client xmlrpc ha funzionato.

, ,

1 Comment