ruby-on-rails - 如何使用 HTTParty on Rails 发出带有 XML 数据正文的 POST 请求

标签 ruby-on-rails ruby xml request httparty

我目前正在尝试对服务器进行 api 调用,该服务器仅接受 xml 形式的数据。 我尝试给 postman 打电话,效果非常好。

curl -v -X POST -H "x-apiKey: 83202136355d1704350fb3ef596ac126" -H "Content-Type: application/xml" -d '<Request LanguageCode="en" emailAddress="your email" mobileNumber="+4477....." gate="212" boardingHHMM="18:40" departHHMM="19:10" arriveHHMM="20:30" ffMiles="" DepartTerminal="Term 2" ffTier="" message="Sample" CabinName="Economy" > <Barcode firstName="Arie" lastName="van der Veek" title="MR" bookingRef="PNR123" depAirportCode="AMS" arrAirportCode="CDG" carrier="XS" flightNumber="56" depDate="2015-06-06" classCode="Y" seatNumber="21B" seqNumber="002" ffAirline="ZZ" ffNumber="123456789" ticketNumber="000123456789012" issuingCarrier="ZZ" /> </Request>' "https://dev2dbp.api.aero/api/ZZ"

现在我尝试使用以下代码在 Ruby on Rails 中实现此 api 调用,但遗憾的是我每次都会收到 ERROR 500。

class FlightTicketController < ApplicationController

#  get 'flight_ticket/get_ticket'
def get_ticket
    response = HTTParty.post(
    "https://dev2dbp.api.aero/api/ZZ",
    :headers => {"x-apiKey" => "83202136355d1704350fb3ef596ac126","Content-Type" => "application/xml"},
    :body => '<Request LanguageCode="en" emailAddress="your email" mobileNumber="+4477....." gate="212" boardingHHMM="18:40" departHHMM="19:10" arriveHHMM="20:30" ffMiles="" DepartTerminal="Term 2" ffTier="" message="Sample" CabinName="Economy" > <Barcode firstName="Arie" lastName="van der Veek" title="MR" bookingRef="PNR123" depAirportCode="AMS" arrAirportCode="CDG" carrier="XS" flightNumber="56" depDate="2015-06-06" classCode="Y" seatNumber="21B" seqNumber="002" ffAirline="ZZ" ffNumber="123456789" ticketNumber="000123456789012" issuingCarrier="ZZ" /> </Request>' 
)

render xml: response
  end


end

您有什么建议可以让这项工作成功吗?

最佳答案

我假设 500 错误代码来自您的 Controller ,而不是来自 API 调用。如果您检查日志文件,您将看到更多详细信息。我猜测一下:

您正在将 HTTP 响应交给 render,但要求它将其呈现为 XML。

尝试

render xml: response.body

相反。

关于ruby-on-rails - 如何使用 HTTParty on Rails 发出带有 XML 数据正文的 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37507932/

相关文章:

javascript - Ruby on Rails - 编辑/更新显示布局上的内容

mysql - attr_encrypted 和加密由 date_select 表单助手生成的日期

javascript - 如何在 Rails 中使用 jquery tokeninput?

ruby - 优化用于将字符串解析为数值的 ruby​​ 代码

xml - xslt 损坏 : pattern does not match

ruby-on-rails - Actionmailer 无法在 Rails 2.3 中工作

ruby - 什么是AWS SDK请求超时?

ruby-on-rails - 从 Controller 访问模型方法

java - 某些设备出现错误 "android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class <unknown>"

xml - 从 Linux 上的 curl 命令结果中提取 xml 部分