0

因为在我想知道是否有人可以指出一些在处理 XML(post/puts 请求)时显示最佳实践的资源或者可能显示一个示例之前,我从未这样做过。

例如,我正在尝试将一些 XML 回发到google 联系人 api以更新联系人

我目前所做的是将传入的 XML 保存到我的模型中,在应用程序中执行编辑功能,然后保存回模型。一旦所有内容都更新,我想以 XML 格式将更新后的联系人回发回 API,在目前我只更新电子邮件地址和人名

这是一个 PUTS 请求

https://www.google.com/m8/feeds/contacts/userEmail/full/{contactId}

有人可以提供一个他们将如何做到的例子吗?

要返回的 XML 是

PUT /m8/feeds/contacts/default/full/<var>contactId</var>
If-Match: <var>Etag</var>

<entry gd:etag='<var>Etag</var>'>
<id>http://www.google.com/m8/feeds/contacts/<var>userEmail</var>/base/<var>contactId</var></id>
<updated>2008-02-28T18:47:02.303Z</updated>
<category scheme='http://schemas.google.com/g/2005#kind'
term='http://schemas.google.com/contact/2008#contact'/>
<gd:name>
<gd:givenName>New</gd:givenName>
<gd:familyName>Name</gd:familyName>
<gd:fullName>New Name</gd:fullName>
</gd:name>
<content type='text'>Notes</content>
<link rel='http://schemas.google.com/contacts/2008/rel#photo' type='image/*'
href='https://www.google.com/m8/feeds/photos/media/<var>userEmail</var>/<var>contactId</var>'/>
 <link rel='self' type='application/atom+xml'
href='https://www.google.com/m8/feeds/contacts/<var>userEmail</var>/full/<var>contactId</var>'/>
<link rel='edit' type='application/atom+xml'
href='https://www.google.com/m8/feeds/contacts/<var>userEmail</var>/full/<var>contactId</var>'/>
<gd:phoneNumber rel='http://schemas.google.com/g/2005#other'
primary='true'>456-123-2133</gd:phoneNumber>
<gd:extendedProperty name='pet' value='hamster'/>
<gContact:groupMembershipInfo deleted='false'
href='http://www.google.com/m8/feeds/groups/<var>userEmail</var>/base/<var>groupId</var>'/>
</entry>
</pre>

任何建议表示赞赏

谢谢

4

1 回答 1

1

我对 google 联系人 API 一无所知,但在 Rails 中使用Net::HTTPHTTParty或类似方法进行 POST/PUT/GET 非常简单。

在 HTTParty 我很确定它是这样的:

require 'httparty'
response = HTTParty.put("https://www.google.com/m8/feeds/contacts/userEmail/full/{contactId}",
             :body => { :xml => xml_data })
于 2013-04-05T13:25:53.017 回答