使用http客户端通过帖子发送标题和内容

问题描述 投票:0回答:2

我正在简单地调用API来接收一些数据。我需要发送标题以获得授权我还需要在正文上发送一些内容。这就是我想出的:

public async Task<List<LoremIpsum>> LoremIpsumJson()
    {
        LoremIpsum1 data = null;
        try
        {
            var client = new HttpClient();
            //now lets add headers . 1.method, 2.token
            client.DefaultRequestHeaders.Add("Method", "LoremIpsumExample");
            client.DefaultRequestHeaders.Add("Token", "sometoken");
            HttpContent content = new StringContent("{\"Name\":\"John\",\"Surname\":\"Doe\",\"Example\":\"SomeNumber\"}", Encoding.UTF8, "application/json");
            // ==edit==
             client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            var response = await client.PostAsync("www.theUrlToTheApi", content);
            response.EnsureSuccessStatusCode();
            string json = await response.Content.ReadAsStringAsync();
            data = JsonConvert.DeserializeObject<QueueInfo>(json);
        }
        catch(Exception ex)
        {
            Debug.WriteLine(ex.Message.ToString());
        }
        return data.data;
        Debug.WriteLine(data.data);
    }

应用程序在response.EnsureSuccessStatusCode();之后中断,因为请求显然不成功。我想我真的很想念一些非常简单的东西。我该怎么办电话?错误是

StatusCode:406,ReasonPhrase:'不可接受'

c# asp.net json http xamarin
2个回答
1
投票

这可能有很多原因无效。例如:keyvalues.ToString()很可能没有投入你想要的价值。好像你可能需要序列化为json而不是仅仅调用.ToString()

首先使用像postman这样的工具并让它在那里工作,这样你就有了一个工作实例,然后尝试在C#中重新创建。它会让你的生活更轻松。


0
投票

为每个来这里寻找解决方案的人。 HttpContent不能使用标题而不是内容类型。添加内容类型时出现了拼写错误,该内容类型应该以这种方式添加到HttpClient中:

client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
© www.soinside.com 2019 - 2024. All rights reserved.