为什么我不能在c#中发送json字符串到服务器

本文关键字:json 字符串 服务器 不能 为什么 | 更新日期: 2023-09-27 18:17:43

我想发送json字符串到服务器,首先我写这个json:

string json = "{'"registration_ids'":['"" + regId + "'"]}";


服务器get up json成功,但当我把它改成这样:

string json = "{'"registration_ids'":['"" + regId + "'"] , '"data'":['"" + ns + "'"]}";


现在不发送json,我得到这个错误:

The remote server returned an error: (400) Bad Request.


发生了什么?怎么解呢?

string ns = "ali";


string regId = "APA91bGUgyf8rIVBIdRyc9JUZDWfBTBkflRB2xKe5u9zfd6xP8PYR0yWHXoA7_ev51bAuGHYLjzYuC-TwbzmfO35synRkjf5UoRTTMMYmKgi7qRgb6HPbIv9JFf_xLNd1IKKwriPUl3vCdGYtPMJj42GJir-";

为什么我不能在c#中发送json字符串到服务器

因为您可能创建了无效的JSON。不要像那样"手写"JSON。相反,可以使用库来完成这些工作,比如Json。. NET示例:

public class X
{
    [JsonProperty("registration_ids")]
    public List<string> RegistrationIds { get; set; }
    [JsonProperty("data")]
    public List<string> Data { get; set; }
}

并像这样使用:

static void Main(string[] args)
{
    var x = new X
    {
        RegistrationIds = new List<string> { "1", "2" },
        Data = new List<string> { "hello" }
    };
    Console.WriteLine(JsonConvert.SerializeObject(x));
}

将收益率:

{"registration_ids":["1","2"],"data":["hello"]}