我正在尝试通过 Delphi XE7 中的Google Contacts API version 3.0更新 Google通讯录。我自定义了http://docwiki.embarcadero.com/CodeExamples/XE7/en/RESTDemo_Sample中提供的RESTDemo示例。
说明(在Google通讯录API中):
要更新联系人,请先检索联系人条目,然后修改数据 并向该联系人的编辑URL发送授权的PUT请求 修改了身体中的接触入口。
我可以检索代码,但无法发送 PUT请求。代码如下:
function TdmMain.UpdateName(sId, sName: string): string;
begin
ResetRESTComponentsToDefaults;
RESTClient.BaseURL := 'https://www.google.com/m8/feeds/contacts/default/full/' + sId + '/';
RESTClient.Authenticator := OAuth2_GoogleContacts;
RESTRequest.Execute;
Result := Content;
Content := AnsiReplaceStr(Content, '<title type="text"/>', '<title type="text">' + sName + '</title>');
// I don't know if I should repeat that, but I tried. Still, doesn't work
// ResetRESTComponentsToDefaults;
// RESTClient.BaseURL := 'https://www.google.com/m8/feeds/contacts/default/full/' + sId + '/';
// RESTClient.Authenticator := OAuth2_GoogleContacts;
RESTRequest.ClearBody;
RESTRequest.AddBody(Content, ctTEXT_XML);
RESTRequest.Method := rmPOST;
RESTRequest.Execute;
Result := Content;
end;
我每次都收到以下消息:
> <html><head><meta http-equiv="Content-Type" content="text/html;
> charset=utf-8"> <title>Error 401 (Client Error)!!1</title> <style
> type="text/css"> ...
有没有人知道如何在Delphi中提出正确的PUT请求?