C# UWP POST列表项,但仅限于某些项

C# UWP POST列表项,但仅限于某些项,c#,json,rest,post,microsoft-graph-api,C#,Json,Rest,Post,Microsoft Graph Api,嗯。多亏了这里的一点帮助,我已经学会了如何从我的SharePoint列表中获取ListItems。现在我正试图发布一个新的列表项。到目前为止,我使用的只是发布了一个空白列表项。所以发生了一些事情,但是没有数据 因此,对于GET,我使用了以下代码块: public async Task<string> GetHttpSPContentWithToken(string url, string token, string listitem) { var ht

嗯。多亏了这里的一点帮助,我已经学会了如何从我的SharePoint列表中获取ListItems。现在我正试图发布一个新的列表项。到目前为止,我使用的只是发布了一个空白列表项。所以发生了一些事情,但是没有数据

因此,对于GET,我使用了以下代码块:

    public async Task<string> GetHttpSPContentWithToken(string url, string token, string listitem)
    {
        var httpClient = new HttpClient();
        HttpResponseMessage response;
        try
        {
            var request = new HttpRequestMessage(HttpMethod.Get, url);
            //Add the token in Authorization header
            request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);
           response = await httpClient.SendAsync(request);
            var content = await response.Content.ReadAsStringAsync();
            var result = JsonConvert.DeserializeObject<SharePointListItems.RootObject>(content);
            if (listitem == "Title")
            {
                return result.fields.Title;
            }
            else if (listitem == "UserName")
            {
                return result.fields.UserName;
            }
            else if (listitem == "UserAge")
            {
                return result.fields.UserAge;
            }
            else
            {
                return result.fields.UserTitle;
            }
        }
        catch (Exception ex)
        {
            return ex.ToString();
        }
    }
这对我来说很有意义,至少我是这么想的

但是现在我试图用这段代码添加到列表中,但是正如我之前所说的,我只是在前面的行下面得到一个空行

    public async Task<string> PostHttpSPContentWithToken(string url, string token)
    {
        var httpClient = new HttpClient();
        HttpResponseMessage response;
        try
        {
            var values = new Dictionary<string, string>
            {
               { "Title", TitleText.Text },
               { "UserName", UserNameText.Text },
               { "UserAge", UserAgeText.Text },
               { "UserTitle", UserTitleText.Text }
            };
            string content = JsonConvert.SerializeObject(values);

            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\":{\"Title\":\"4\",\"UserName\":\"JD\",\"UserAge\":\"28\",\"UserTitle\":\"Visitor\"}}"

或者有影响的东西。

我终于明白了。以下是更改后的代码:

    public async Task<string> PostHttpSPContentWithToken(string url, string token)
    {
        var httpClient = new HttpClient();
        HttpResponseMessage response;
        try
        {
            var root = new
            {
                fields = new Dictionary<string, string>
                {
                   { "Title", TitleText.Text },
                   { "UserName", UserNameText.Text },
                   { "UserAge", UserAgeText.Text },
                   { "UserTitle", UserTitleText.Text }
                }
            };

            string content = JsonConvert.SerializeObject(root);

            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();
        }
    }
公共异步任务PostHttpSPContentWithToken(字符串url,字符串标记)
{
var httpClient=新的httpClient();
HttpResponseMessage响应;
尝试
{
var root=new
{
字段=新字典
{
{“Title”,TitleText.Text},
{“UserName”,UserNameText.Text},
{“UserAge”,UserAgeText.Text},
{“UserTitle”,UserTitleText.Text}
}
};
string content=JsonConvert.SerializeObject(根);
var request=newhttprequestmessage(HttpMethod.Post,url);
//在授权标头中添加令牌
request.Headers.Authorization=new System.Net.Http.Headers.AuthenticationHeaderValue(“承载者”,令牌);
request.Content=newstringcontent(Content,Encoding.UTF8,“application/json”);
响应=等待httpClient.SendAsync(请求);
var responseString=await response.Content.ReadAsStringAsync();
回报率;
}
捕获(例外情况除外)
{
返回例如ToString();
}
}
所以我有了正确的想法,只是想知道怎么做

"{\"fields\":{\"Title\":\"4\",\"UserName\":\"JD\",\"UserAge\":\"28\",\"UserTitle\":\"Visitor\"}}"
    public async Task<string> PostHttpSPContentWithToken(string url, string token)
    {
        var httpClient = new HttpClient();
        HttpResponseMessage response;
        try
        {
            var root = new
            {
                fields = new Dictionary<string, string>
                {
                   { "Title", TitleText.Text },
                   { "UserName", UserNameText.Text },
                   { "UserAge", UserAgeText.Text },
                   { "UserTitle", UserTitleText.Text }
                }
            };

            string content = JsonConvert.SerializeObject(root);

            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();
        }
    }