Каждая комбинация Etag считается недействительной. Когда я делаю один и тот же запрос в графическом обозревателе, он работает - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь обновить детали плана через Microsoft Graph API.Мой проект MVC .Net 4. GET и POST-запросы хороши, но когда я попытался обновить детали плана, заголовок IF-Match был обязательным в запросе, поэтому я отправляю значение ETAG в разделе if-match, но продолжаю говоритьЗначение IF-Match недопустимо и иногда говорит, что указано неверно.помогите мне.

Это некоторые ответы после того, как я собрал в порядке, перечисленные ниже запросы 1) Ошибка в / Home / EditPlanAction: формат значения 'W / \ "JzEtUGxhbiAgQEBAQEBAQEBAQEBAQEBATCc = \"' недопустим.

2 & 3) Ошибка в / Home / EditPlanAction: {"error": {"code": "", "message": "Заголовок If-Match содержит недопустимое значение.", "InnerError":{"request-id": "e7744797-f0ac-45c6-a1a6-73dcd3838759", "date": "2019-05-03T21: 03: 24"}}}

if (method != HttpMethod.Get && method != HttpMethod.Delete && method != 
    HttpMethod.Post && method != HttpMethod.Put)


{


string uri1 = uri.Replace("/details", "");
HttpResponseMessage foretag = await 
ServiceHelper.SendRequest(HttpMethod.Get, $"{graphV1Endpoint}{uri1}", 
accessToken);



 //EntityTagHeaderValue entityTagHeaderValue = new 
                     EntityTagHeaderValue((foretag.Headers.ETag.Tag));

     //JsonConvert.SerializeObject(entityTagHeaderValue, jsonSettings);

      string etag1 = foretag.Headers.ETag.Tag;

      string etag2 = etag1.Replace("\"", "");

      //string etag3 = "W/\\\"" + etag2 + "\\\"";


 `request.Headers.Add("If-Match", "W/\\\"" + etag2 + "\\\"");`
 `request.Headers.Add("If-Match", "W/\"" + etag2 + "\"");`
 `request.Headers.Add("If-Match", "\"" + etag2 + "\"");`
 `request.Headers.Add("If-Match", "\\\"" + etag2 + "\\\"");`
 `request.Headers.Add("If-Match",  etag2 );`

1 Ответ

0 голосов
/ 06 мая 2019

Исправлено, поэтому моя проблема заключалась в том, что я продолжал использовать Etag плана для обновления сведений о плане.Мало ли я знал, что даже если мы работаем над тем же планом, детали плана для этого плана будут иметь разные Etag.Вместо того, чтобы делать новый запрос на получение, чтобы получить планы Etag из ответа, я получил детали плана Etag и отправил его для запроса деталей, и это сработало.не стесняйтесь комментировать, если кто-то сталкивается с той же проблемой и хочет получить более подробную информацию о проблеме.Я написал новую функцию GetMyEtag, которая получает etag сведений о плане, которые я пытаюсь обновить.

...