为什么我不能发送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-";
因为你可能创建一个无效的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"]}
感谢我的朋友,但在这一行:JsonConvert.SerializeObject(x).Dump();视觉工作室不知道转储(); –
@mohammadrezapoushideh是的,我已经删除了'Dump()',它来自LINQPad :)。改用'Console.WriteLine'。 –
好的,请等待以测试您的解决方案。 –
你需要表现出更多的代码让人们可以帮助。例如'ns'如何创建它保存的数据。这可能是因为这导致字符串无效JSON。这也可能意味着你在'c#'中没有与你指定的参数相匹配的方法 – Flexicoder
这一切都取决于远程服务器的期望......显然它认为你发送的JSON是无效的,因为为什么这是几乎不可能预测的。编辑:如Flexicoder说知道什么'ns'可能会帮助 –
@Flexicoder我更新我的问题,请审查。 –