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

问题描述:

我想JSON字符串发送到服务器,首先我写这篇文章的JSON:
为什么我不能发送json字符串到c#中的服务器?

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


服务器起床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-"; 
+1

你需要表现出更多的代码让人们可以帮助。例如'ns'如何创建它保存的数据。这可能是因为这导致字符串无效JSON。这也可能意味着你在'c#'中没有与你指定的参数相匹配的方法 – Flexicoder

+0

这一切都取决于远程服务器的期望......显然它认为你发送的JSON是无效的,因为为什么这是几乎不可能预测的。编辑:如Flexicoder说知道什么'ns'可能会帮助 –

+0

@Flexicoder我更新我的问题,请审查。 –

因为你可能创建一个无效的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"]} 
+0

感谢我的朋友,但在这一行:JsonConvert.SerializeObject(x).Dump();视觉工作室不知道转储(); –

+0

@mohammadrezapoushideh是的,我已经删除了'Dump()',它来自LINQPad :)。改用'Console.WriteLine'。 –

+0

好的,请等待以测试您的解决方案。 –