2017-01-18 3 views
0

В настоящее время работает с Outlook api, даже жестко Обычно я работаю с библиотекой Outlook, приобретенной через Nuget; Я достиг ограничения, когда я не могу принимать приглашения на мероприятия. Поэтому я приступил к спокойному призыву к прогнозу api. Однако, когда я делаю вызов, я получаю следующее сообщение: {«error»: {«code»: «InvalidMethod», «message»: «Действие может быть вызвано только как запрос« POST ».}}, Когда выполнение вызова.Получение «Действие может быть вызвано только как запрос« POST », когда я пытаюсь вызвать outlook restful api

Bad Code

class Program 
    { 
     static void Main(string[] args) 
     { 
       var testAccept = ExecuteClientCall.AcceptEvent().Result; 
     } 

public static async Task<bool> AcceptEvent() 
     { 
      AuthenticationContext authenticationContext = new AuthenticationContext(CrmPrototype.Helpers.AuthHelper.devTenant); 
      try 
      { 
       var token = await GetTokenHelperAsync(authenticationContext, CrmPrototype.Helpers.AuthHelper.OutlookAuthenticationEndpoint); 
       string requestUrl = "https://outlook.office.com/api/v2.0/Users/***@nowwhere.com/events('AAQkAGZiNDQxZTVkLWQzZjEtNDdjNy04OTc4LTM4NmNjM2JiOTRjNAAQAFpV0CnWR0FIpWFYRtszPHU=')/accept"; 

       HttpClient hc = new HttpClient(); 
       hc.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token); 

       var method = new HttpMethod("POST"); 

       var request = new HttpRequestMessage(method, requestUrl) 
       { 
        Content = new StringContent("{SendResponse: true}", Encoding.UTF8, "application/json") 
       }; 

       HttpResponseMessage hrm = await hc.GetAsync(requestUrl); 



       if (hrm.IsSuccessStatusCode) 
       { 
        string jsonresult = await hrm.Content.ReadAsStringAsync(); 
        var stophere = 0; 

       } 
       else 
       { 
        return false; 
       } 
       return true; 
      } 

      catch (Exception ex) 
      { 
       throw; 
      } 
     } 

    } 

ответ

1

Ваша переменная request содержит объект HttpRequestMessage, который вы создали, но ваш код в настоящее время ничего не делает с этим.

Попробуйте заменить строку

   HttpResponseMessage hrm = await hc.GetAsync(requestUrl); 

(который, как отметил другой ответ, делает GET запрос), с

   HttpResponseMessage hrm = await hc.SendAsync(request); 
Смежные вопросы