Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#HttpClient Put/Post谷歌日历API_C#_Httpclient_Google Calendar Api - Fatal编程技术网

C#HttpClient Put/Post谷歌日历API

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

我试图执行一个PUT to Google Calendar API v3,以便添加一个与会者,但每次我都收到400个错误请求的响应。我简化了它,只是尝试更新最大出席人数,看看是否需要,但没有骰子

        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语句中这样做吗?那将非常有帮助。我也没能弄明白