誰かがhttpartyとRuby on Railsを使用してXMLを投稿する方法の例を提供できますか?

StackOverflow https://stackoverflow.com/questions/3773939

  •  04-10-2019
  •  | 
  •  

質問

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を肉付けする方法がよくわかりません。

どんな助けも感謝します。

ありがとう。

役に立ちましたか?

解決

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,
  }
}

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top