简体   繁体   English

使用REST和HttpClient更新SharePoint 2013列表标题

[英]Updating SharePoint 2013 List Title Using REST and HttpClient

I am trying to update a SharePoint 2013 list title using the REST api and HttpClient. 我正在尝试使用REST API和HttpClient更新SharePoint 2013列表标题。 I have the following code but the StatusCode is returning BadRequest. 我有以下代码,但StatusCode返回BadRequest。

private async void UpdateTitle()
    {
        string webUrl = http://server;
        Uri uri = new Uri(webUrl + "/_api/web/lists/GetByTitle('Old')");
        //start replacement
        HttpClientHandler httpClientHandler = new HttpClientHandler();
        httpClientHandler.UseDefaultCredentials = true;
        HttpClient client = new HttpClient(httpClientHandler);
        client.DefaultRequestHeaders.Add("ContentType", "application/json;odata=verbose");
        string digest = await GetFormDigest("http://devsp13.dev.local/_api/contextinfo");
        client.DefaultRequestHeaders.Add("X-RequestDigest", digest);
        client.DefaultRequestHeaders.Add("X-HTTP-Method", "Merge");
        client.DefaultRequestHeaders.Add("IF-MATCH", "*");

        HttpContent content = new StringContent("{ '__metadata': { 'type': 'SP.List' }, 'Title': 'NewTitle' }");
        HttpResponseMessage response = await client.PostAsync(uri, content);
        response.EnsureSuccessStatusCode();}

I'm guessing I've missed something in forming the HttpClient but I'm struggling to see what. 我猜想我在组建HttpClient时错过了一些东西,但我一直在努力寻找。 Any help is much appreciated. 任何帮助深表感谢。

Cheers, 干杯,

Geoff 杰夫

Try adding Accept to the HttpClient DefaultRequestHeaders and set the ContentType on the HttpContent Headers instead. 尝试将Accept添加到HttpClient DefaultRequestHeaders并在HttpContent Headers上设置ContentType。 This worked for me. 这对我有用。

HttpClientHandler handler = new HttpClientHandler();
handler.UseDefaultCredentials = true;
HttpClient client = new HttpClient(handler);
client.DefaultRequestHeaders.Add("Accept", "application/json;odata=verbose");
client.DefaultRequestHeaders.Add("X-RequestDigest", GetFormDigest());
client.DefaultRequestHeaders.Add("X-HTTP-Method", "MERGE");
client.DefaultRequestHeaders.Add("IF-MATCH", "*");

HttpContent content = new StringContent(metadataString);
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
content.Headers.ContentType.Parameters.Add(new NameValueHeaderValue("odata", "verbose"));
HttpResponseMessage response = await client.PostAsync(uri, content);
response.EnsureSuccessStatusCode();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 使用REST API获取Sharepoint 2013列表 - Get Sharepoint 2013 List using REST API SharePoint 2013 REST API:更新文件元数据 - SharePoint 2013 REST API: Updating File Metadata 在C#中使用REST更新SharePoint列表项的查找字段 - Updating lookup fields of SharePoint list items using REST in C# 如何在C#中使用SharePoint Online 2013 Rest API删除列表项 - How to delete list item using SharePoint Online 2013 Rest API in C# 如何使用SharePoint 2013中的REST API将附件文件附加到列表项 - How to attach a attachment file to a list item using REST API in SharePoint 2013 使用REST和HTTPClient在SP2013中创建一个文件夹 - Create a folder in SP2013 using REST and HTTPClient 通过REST从SharePoint 2013中的列表中提取数据 - Pulling data from a list in SharePoint 2013 via REST 无法使用REST在SharePoint 2013中重命名文件夹 - Can't rename folder in SharePoint 2013 using REST 在没有Sharepoint环境的情况下,使用来自.Net的Rest API,为Sharepoint 2013中的用户设置文件夹权限? - Set folder permission for user in Sharepoint 2013 using Rest API from .Net without Sharepoint environment? 如何使用 powershell/c# 列出 SharePoint 中的所有 2013 工作流 - How to list all 2013 workflows in SharePoint using powershell/c#
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM