Click here to Skip to main content
15,885,537 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
Hello codeproject peps

After following this article https://blog.xamarin.com/add-collaboration-to-your-mobile-apps-with-sharepoint/[^]

i was able to authenticate to sharepoint online, add a list and some list items. Now i would like to update list items but cannot seem to get it right, i continuously get a 400 bad request response. Here is my method:

C#
protected async Task<Boolean> UpdateListItem(string token)
{

    var client = new HttpClient();
    client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);
    client.DefaultRequestHeaders.Add("X-HTTP-Method", "MERGE");
    client.DefaultRequestHeaders.Add("IF-MATCH", "*");
    var mediaType = new MediaTypeWithQualityHeaderValue("application/json");
    mediaType.Parameters.Add(new NameValueHeaderValue("odata", "verbose"));
    client.DefaultRequestHeaders.Accept.Add(mediaType);


    var itemToUpdateTitle = "Item updated on: " + DateTime.Now.ToString("dd/MM HH:mm");
    var body = "{\"__metadata\":{\"type\":\"SP.Data.TasksByAndroidListItem\"},\"Title\":\"" + itemToUpdateTitle + "}";
    var contents = new StringContent(body);
    contents.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json;odata=verbose");
    try
    {
        var postResult = await client.PostAsync("https://mysite.sharepoint.com/_api/web/lists/GetByTitle('TasksByAndroid')/items(1)", contents);
        var result = postResult.EnsureSuccessStatusCode();
        if (result.IsSuccessStatusCode)
            Toast.MakeText(this, "List item updated successfully!", ToastLength.Long).Show();
        return true;
    }
    catch (Exception ex)
    {
        Log.Info("---UPDATE ITEM EXCEPTION---", ex.Message);
        var msg = "Unable to update list item. " + ex.Message;
        Toast.MakeText(this, msg, ToastLength.Long).Show();
        return false;
    }
}



I would really appreciate it if someone could tell me what im doing wrong.
Posted

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900