如何接收OneNote API GET请求的响应包



我得到一个确认,但没有响应消息(详细信息),即从OneNote API的笔记本列表。下面是我的代码。我能够从POST消息接收报头和JSON详细信息,但不能接收GET消息。我试图转换POST代码以提交GET请求。

private async void getRequestClick(object sender, RoutedEventArgs e)
    {
     await GetRequests(true, "test");
    }
    async public Task<StandardResponse> GetRequests(bool debug, string sectionName)
    {
         Uri PagesEndPoint1 = new Uri("https://www.onenote.com/api/v1.0/notebooks");
        var client = new HttpClient();
        //// Note: API only supports JSON return type.
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
        //// This allows you to see what happens when an unauthenticated call is made.
        if (IsAuthenticated)
        {
            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authClient.Session.AccessToken);
        }
        HttpResponseMessage response;
        HttpRequestMessage createMessage = new HttpRequestMessage(HttpMethod.Get, PagesEndPoint1);
        response = await client.SendAsync(createMessage);
        tbResponse.Text = response.ToString();
        return await TranslateResponse(response);
    }
    private async static Task<StandardResponse> TranslateResponse(HttpResponseMessage response)
    {
        StandardResponse standardResponse;
        if (response.StatusCode == HttpStatusCode.Created)
        {
            dynamic responseObject = JsonConvert.DeserializeObject(await response.Content.ReadAsStringAsync());
            standardResponse = new CreateSuccessResponse
            {
                StatusCode = response.StatusCode,
                OneNoteClientUrl = responseObject.links.oneNoteClientUrl.href,
                OneNoteWebUrl = responseObject.links.oneNoteWebUrl.href
            };
        }
        else
        {
            standardResponse = new StandardErrorResponse
            {
                StatusCode = response.StatusCode,
                Message = await response.Content.ReadAsStringAsync()
            };
        }
        // Extract the correlation id.  Apps should log this if they want to collcet the data to diagnose failures with Microsoft support 
        IEnumerable<string> correlationValues;
        if (response.Headers.TryGetValues("X-CorrelationId", out correlationValues))
        {
            standardResponse.CorrelationId = correlationValues.FirstOrDefault();
        }
        return standardResponse;
    }

我的POST消息工作正常。我可以创建一个新的页面等等

我认为你需要从HttpStatusCode改变预期的状态代码。创建为HttpStatusCode。对于Get请求来说是OK的,因为它们返回的是200而不是201。试着在translaterresponse方法中这样做。

相关内容

  • 没有找到相关文章

最新更新