C#HttpClient Put/Post谷歌日历API
我试图执行一个PUT to Google Calendar API v3,以便添加一个与会者,但每次我都收到400个错误请求的响应。我简化了它,只是尝试更新最大出席人数,看看是否需要,但没有骰子C#HttpClient Put/Post谷歌日历API,c#,httpclient,google-calendar-api,C#,Httpclient,Google Calendar Api,我试图执行一个PUT to Google Calendar API v3,以便添加一个与会者,但每次我都收到400个错误请求的响应。我简化了它,只是尝试更新最大出席人数,看看是否需要,但没有骰子 public void AddAttendeeToEvent(string calendarId, string eventId, string attendeeEmail) { try { var httpClie
public void AddAttendeeToEvent(string calendarId, string eventId, string attendeeEmail)
{
try
{
var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + AuthenticationHelper.Instance.Token);
var baseUrl = String.Format("https://www.googleapis.com/calendar/v3/calendars/{0}/events/{1}", calendarId, eventId);
//var postData = string.Format ("attendees[].email={0}", attendeeEmail);
var postData = "maxAttendees=100";
var content = new StringContent(postData, Encoding.UTF8, "application/x-www-form-urlencoded");
var response = httpClient.PutAsync(baseUrl, content).Result;
response.EnsureSuccessStatusCode ();
}
catch(Exception ex)
{
string s = "";
}
}
注意-这是在Xamarin中,没有可用的客户端库。现在必须手动完成…关于这方面的文档非常糟糕。我建议您放弃这段代码,使用C#Calendar API客户端库重新开始。您可以从文档页面中的下载中获得:
但是,作为第一步,请阅读入门指南并获取正确的Oauth2令牌。
maxateendes=100
看起来可疑。您确定这不应该作为查询字符串的一部分出现在URL中,例如https://www.googleapis.com/calendar/v3/calendars/{0}/events/{1}?maxAttendees=100
?即使我这样做了:var response=httpClient.PutAsync(baseUrl,null).Result;它仍然返回400:BAD请求PUT数据不需要是JSON吗?切换为JSON,结果仍然相同。一定是出了什么事。任何人都可以在curl语句中这样做吗?那将非常有帮助。我也没能弄明白