我意识到这是一个重复的问题,但它没有得到回答,所以我用我自己的代码再次提出问题。
我尝试使用DELPHI XE5 Update 2中的REST客户端库组件(TRESTClient,TRESTRequest,TRESToAuth2Autenticator,TRESTResponse)向Google Calendar / v3 API发送HTTP请求。
为什么以下工作没有?我得到的只是一个错误的请求说明"此API不支持解析表单编码的输入"。我已在客户端和请求中指定了application / json,但它忽略了这一点并仍然以Form Encoded方式发送。
JB := TlkJSONObject.Create;
JBStart := TlkJSONObject.Create;
JBEnd := TlkJSONObject.Create;
try
JB.Add('Summary', 'Another Test');
JBStart.Add('DateTime', '2016-02-09T17:00:00');
JBStart.Add('TimeZone', 'Europe/London');
JB.Add('Start', JBStart);
JBEnd.Add('DateTime', '2016-02-09T18:00:00');
JBEnd.Add('TimeZone', 'Europe/London');
JB.Add('End', JBEnd);
Event := TlkJSON.GenerateText(JB);
finally
FreeAndNil(JB);
end;
Client.BaseURL := 'https://www.googleapis.com/calendar/v3/calendars/' + CalID + '/events?key=' + ClientInfo.APIKey;
Client.ContentType := 'application/json;';
Req.AddBody(Event, ctAPPLICATION_JSON);
Req.Method := rmPOST;
Req.Execute;