获得" BadRequest"使用HttpClient

时间:2017-11-13 11:56:00

标签: c# dotnet-httpclient sharepoint-online

我正在尝试使用C#HttpClient将数据发布到SharePoint Online上的列表中。这是我的代码:

  using (var client = new SPHttpClient(webUri, userName, password))
        {
            var listTitle = "HttpClientList";
            var itemPayload = new
            {
                __metadata = new
                {
                    type = "SP.Data.HttpClientListListItem"
                },
                Title = "test3",<--column name "Title"
                _x0071_cr5 = "value3"<--column name "Value"
            };
            var endpointUrl = string.Format("{0}/_api/web/lists/getbytitle('{1}')/items", webUri, listTitle);
            var data = client.ExecuteJson(endpointUrl, HttpMethod.Post, itemPayload);
            Console.WriteLine("Task item '{0}' has been created", data["d"]["Title"]);
            Console.ReadLine();

截至目前,我正在获得状态&#34; 400,BadRequest&#34;。我的猜测是我错过了一些东西或者提供了错误的数据。 我一直关注这篇博文Blogpost 我只能执行动词GET。所有其他动词都给了我&#34; 400,BadRequest&#34;

1 个答案:

答案 0 :(得分:0)

用varoius解决方案解决了这个问题。

添加了正确的ListItem HttpClientListListItem。 通过ListSettings面板创建所有列。 将client.ExecuteJson()替换为client.ExecuteJson(endpointUrl, HttpMethod.Post, headers, default(string));。  谢谢你的帮助!