Zugriff auf Header für Net::HTTP::Post in ruby
Habe ich das folgende Stück code:
uri = URI.parse("https://rs.xxx-travel.com/wbsapi/RequestListenerServlet")
https = Net::HTTP.new(uri.host,uri.port)
https.use_ssl = true
req = Net::HTTP::Post.new(uri.path)
req.body = searchxml
req["Accept-Encoding"] ='gzip'
res = https.request(req)
Dies in der Regel funktioniert gut, aber der server auf der anderen Seite beschwert sich über etwas, das in meiner XML-Datei und die Technik-Freaks gibt, müssen die xml-Nachricht UND der Header, die gesendet werden.
Ich habe die xml-Nachricht, aber ich kann nicht herausfinden, wie man die Header, die gesendet werden, mit den oben genannten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
können Sie hinzufügen:
bevor die Anforderung, und Sie werden siehe in der Konsole die eigentliche http-Anforderung an den server gesendet.
sehr nützlich zum Debuggen dieser Art von Szenarien.
Zugriff auf Kopfzeilen verwenden Sie die
each_header
Methode:Werfen Sie einen Blick auf die Dokumentation für Net::HTTP ist
post
Methode. Es nimmt diepath
von der uri-Wert, die Daten (XML), die Sie buchen möchten, dann die überschriften, die Sie festlegen möchten. Es gibt die Antwort und den Körper als ein zwei-element-array.Kann ich nicht testen, weil Sie haben verdunkelt, die die host-und die Chancen stehen gut, es dauert einen registrierten account, aber der code sieht korrekt aus, was ich mich erinnere, wenn mit Net::HTTP.
Blick auf Typhoeus als Alternative, und, meiner Meinung nach, einfacher zu bedienen Juwel, vor allem das "Making Quick-Anforderungen" Abschnitt.