使用图形状态码400的JSON POST到Sharepoint

时间:2018-08-16 20:41:43

标签: c# json post uwp sharepoint-online

好。所以这真的开始让我感到困惑。我可以让它在一个UWP应用程序上工作,但不能在这个应用程序上工作。

我要发布这段代码:

public async Task<string> SubmitDataWithTokenAsync(string url, string token)
        {
            var httpClient = new HttpClient();
            HttpResponseMessage response;
            try
            {
                var root = new
                {
                    fields = new Dictionary<string, string>
                    {
                       //General Parameters...
                       //Inspection Parameters...
                       //Startup Parameters...
                       //Mechanical Parameters...
                       //Electrical Parameters...
                       //SCR Parameters...
                       //Shutdown Parameters...
                    }
                };

                var s = new JsonSerializerSettings { DateFormatHandling = DateFormatHandling.MicrosoftDateFormat };
                var content = JsonConvert.SerializeObject(root, s);
                var request = new HttpRequestMessage(HttpMethod.Post, url);
                //Add the token in Authorization header
                request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);
                request.Content = new StringContent(content, Encoding.UTF8, "application/json");
                response = await httpClient.SendAsync(request);
                var responseString = await response.Content.ReadAsStringAsync();
                return responseString;
            }
            catch (Exception ex)
            {
                return ex.ToString();
            }
        }
    }

内容恢复正常,看起来....

"{\"fields\":{\"Date\":\"8/16/2018 2:18:48 PM -04:00\",\"Maximo\":null,\"IBX\":\"DC4\",\"Generator\":\"Generator D\",\"AirQuality\":\"Red / Unhealthy\",\"Engineer\":\"Kassim Ganiyou\",\"MT1Level\":null,\"MT2Level\":null,\"StartDTLevel\":null,\"BC1V\":null,\"BC1A\":null,\"BC2V\":null,\"BC2A\":null,\"StartCoolantTEmp\":null,\"StartHours\":null,\"Reason\":null,\"InspectionNotes\":null,\"StartTime\":null,\"CrankV1\":null,\"CrankV2\":null,\"Emissions\":null,\"SCRStartTime\":null,\"OilPressure\":null,\"CoolantTemp\":null,\"BatteryVolt\":null,\"LeftExhTemp\":null,\"RightExhTemp\":null,\"ABVolts\":null,\"BCVolts\":null,\"CAVolts\":null,\"AAmps\":null,\"BAmps\":null,\"CAmps\":null,\"KW\":null,\"Frequency\":null,\"SCROutletTemp\":null,\"NOx\":null,\"UReaFLow\":null,\"Alarms\":null,\"SCRSTopTime\":null,\"StopTime\":null,\"StopHours\":null}}"

请求返回:

{Method: POST, RequestUri: 'https://graph.microsoft.com/v1.0/sites/root/lists/A07CEC93-XXXX-XXXX-XXXX-0F756D2EF63A/items', Version: 2.0, Content: System.Net.Http.StringContent, Headers:
{
  Authorization: Bearer eyJ0eX...PUQ
  Content-Type: application/json; charset=utf-8
  Content-Length: 603
}}

但是响应是:

{StatusCode: 400, ReasonPhrase: 'Bad Request', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
  client-request-id: bb26e6fe-4fae-41ae-921d-aeb39063bd8e
  Strict-Transport-Security: max-age=31536000
  request-id: bb26e6fe-4fae-41ae-921d-aeb39063bd8e
  Transfer-Encoding: chunked
  x-ms-ags-diagnostic: {"ServerInfo":{"DataCenter":"East US","Slice":"SliceC","Ring":"5","ScaleUnit":"001","Host":"AGSFE_IN_1","ADSiteName":"EUS"}}
  Duration: 319.5961
  Cache-Control: private
  Date: Thu, 16 Aug 2018 20:03:10 GMT
  Content-Type: application/json
}}

我有另一个UWP应用程序正在同一个共享点站点上,并且状态201没问题。我只是看不到这种情况下的问题所在。

1 个答案:

答案 0 :(得分:0)

这就是为什么最好从项目中休息一下然后稍后再回到它。

我发现我在SharePoint列表中输入了一个字母错误。所以今天,当我查看响应代码时,它指向了我们。

代码很好。

谢谢。