我需要在Web服务上发布一些XML,并且我正在尝试使用HTTPARTY。有人可以提供有关我如何做的例子吗?

这是我需要发布的XML的格式:

<Candidate xmlns="com.mysite/2010/10/10" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<FirstName></FirstName>
<LastName></LastName>
<Email></Email>
<Gender></Gender>
</Candidate>

到目前为止,这是我的班级:

require 'httparty'


class Webservice
  include HTTParty
  format :xml
  base_uri 'mysite.com'
  default_params :authorization => 'xxxxxxx'

  def self.add_candidate(first_name,last_name,email,gender)
    post('/test.xml', :body => "")    
  end  
end

我不太确定如何充实add_candidate。

任何帮助,将不胜感激。

谢谢。

有帮助吗?

解决方案

您有两个选择。 HTTPARTY允许您同时发布字符串或哈希。

字符串版本是:

post('/test.xml', :body => "<Candidate xmlns=\"com.mysite/2010/10/10\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"><FirstName>#{first_name}</FirstName><LastName>#{last_name}</LastName><Email>#{email}</Email><Gender>#{gender}</Gender></Candidate>")

功能,但不漂亮。我会这样做:

post('/test.xml', :body => {
  :Candidate => {
    :FirstName => first_name,
    :LastName  => last_name,
    :Email     => email,
    :Gender    => gender,
  }
}

现在,我不能确定端点是否需要这些名称空间,如果是,则哈希版本是否可以工作。如果是这样,您可能必须像绳子一样进行身体。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top