Ich verwende net/http
in Ruby, um eine GET
Anfrage an einen Webdienst zu senden. Der wichtige Bit des Codes ist die folgende:Problem mit `&` in Net :: HTTP :: Get.new
Net::HTTP.start("www.thehost.com") do |http|
req = Net::HTTP::Get.new("/api" + ROUTES[sym] + "?" + params)
resp = http.request req
end
params
ist eine Zeichenfolge, die key=val&blag=blorg
Schlüssel-Wert-Paare in der Form enthält. Wenn die Antwort eingeht, stellt sie sich als eine Fehlerseite vom Server heraus, die den Anforderungs-URI angibt. anstelle von key=val&blag=blorg
hat es key=val&blag=blorg
. Da, wenn ich die gleiche Adresse in einen Webbrowser mit &
statt &
eingeben, bekomme ich die erwartete Antwort, ich vermute, dass die Flucht von &
ist, was das Problem verursacht. Wenn jedoch jemand mit mehr Erfahrung nicht einverstanden ist, kannst du meine Frage gerne umbenennen!
Ich sollte beachten, dass, wenn ich http://www.thehost.com/api#{ROUTES[sym]}?#{params}
mit Net::HTTP.get_response
verwenden, bekomme ich die erwartete Antwort. Was kann ich tun, um das zu beheben?
Ich verwende nicht Rails; Ich versuche 'html_safe' und melde mich bei dir. Danke für Ihre Hilfe! –
'html_safe' ist eine Funktion von Rails, damit Sie in diesem Fall kein Glück haben. Versuchen Sie den anderen Vorschlag, obwohl. – Theo