Probleme mit HTTParty.post und Ruby 1.9.2
Frage
Früher funktionierte der folgende Aufruf einwandfrei in einer Rails-App mit Ruby 1.8.7:
HTTParty.post("my uri", :body => "some body", :headers => { "Content-type" => "text/xml"})
Wenn ich dieselbe Zeile unter Ruby 1.9.2 ausführe, erhalte ich eine MultiXml::ParseError
mit dieser Nachricht:
"xmlns: URI xyz is not absolute"
Der Aufruf meiner URI funktioniert einwandfrei, wenn ich Curl verwende, und ich erhalte die erwartete Antwort zurück, die etwa so aussieht:
<client login="foo" numsessions="1" xmlns="xyz"/>
Irgendwelche Erkenntnisse?
Lösung
Nach langem Ringen habe ich dafür HTTParty aufgegeben.Ich habe Patron ausprobiert, das lokal funktionierte, aber nicht auf Heroku, und habe mich schließlich für RestClient entschieden, das großartig funktionierte. https://github.com/archiloque/rest-client
Andere Tipps
Das liegt daran, dass Curl nicht versucht, die XML-Dateien zu analysieren.Sie könnten entweder versuchen, sicherzustellen, dass Sie mit 1.9.2 dieselbe Version von httparty verwenden wie mit 1.8.7, oder die Verantwortlichen dieser URL bitten, die XMLNs gültig zu machen