我正在尝试在Ruby https://zferral.com/api-docs/affiliate#aff-create-usage-example中实现调用此API方法,该方法需要此对象:
{ "affiliate" : {
"email" : "john@example.com",
"send_user_email" : "1" }}
使用Httparty类,我称之为:
result = self.class.post("/api/#{@apikey}/affiliate/create.xml", :body => {:affiliate => {:email => email}})
不幸的是,API一直向我发送“需要电子邮件”。我试图切换到json,我改变了:body with:query等...
有人可以告诉我如何正确调用affiliate / create方法吗?
谢谢。
答案 0 :(得分:2)
您正在发送json,但是将其发布到rails.xml ---在rails中,当您发布到create.xml时,这将自动将内容类型设置为xml
尝试发帖到/api/#{@apikey}/affiliate/create.json
如果这不起作用 - 你是否遵循HTTParty真正喜欢的课堂设计? http://railstips.org/blog/archives/2008/07/29/it-s-an-httparty-and-everyone-is-invited/
答案 1 :(得分:2)
这就是我解决问题的方法:
url = URI.parse('https://xxxx.zferral.com/api/xxx/affiliate/create.xml')
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Post.new(url.path)
request.body = "<?xml version='1.0' encoding='UTF-8'?><affiliate><email>#{email}</email><send_user_email>0</send_user_email></affiliate>"
request.content_type = 'text/xml'
response = http.request(request)