7

いくつかのxmlをWebサービスに投稿する必要があり、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を具体化する方法がよくわかりません。

どんな助けでもいただければ幸いです。

ありがとう。

4

1 に答える 1

19

2つのオプションがあります。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,
  }
}

さて、名前空間がエンドポイントに必要かどうか、もしそうなら、ハッシュバージョンが機能するかどうかはわかりません。その場合は、本体を弦として使用する必要があるかもしれません。

于 2010-09-23T03:01:21.633 に答える