Я пытаюсь использовать rails 4.0 для создания API для веб-службы, для которой требуется прямая почта xml на их защищенный сервер.
У меня есть форма, которая отправляет `:action => "testSubmit" для запуска следующего кода в моем контроллере, который я собрал воедино после нескольких часов (в основном устаревших) исследований и отладки.
def testSubmit
xml = Builder::XmlMarkup.new
xml.instruct!
xml.sale do
xml.tag! 'tag-1', "INFO_HERE"
xml.tag! 'tag-2', "MORE_INFO"
xml.amount "100.00"
end
uri = URI('https://secure.abc.com')
Net::HTTP.start(uri.host, uri.port,
:use_ssl => uri.scheme == 'https') do |http|
response = http.post("/api/some/path", xml.to_s)
flash[:notice] = "Sent?"
end
end
Фреймворк rails действительно перенаправляется на представление testSubmit.html.erb
с присутствием flash
, поэтому все указывает на то, что он может работать, но если я попытаюсь прочитать данные ответа, он окажется пустым. Например, если я включу <%= response %>
в свое представление, я увижу:
#<ActionDispatch::Response:0x007fd167ddef60>
но <%= response.body %>
ничего не отображает...
Я ожидаю, что ответ будет конкретным xml, который я проверил с помощью PHP и Curl, а также надстройки firefox «Poster».