我使用以下代码将我的JSON字符串放到Firebase数据库中:
RestRequest request = new RestRequest("MemberAndChannels/{userId}/{channelId}.json", Method.POST);
request.RequestFormat = DataFormat.Json;
request.AddParameter("auth", accessKey);
request.AddUrlSegment("userId", user.UUID);
request.AddUrlSegment("channelId", channel.UUID);
request.AddHeader("Content-Type", "application/json; charset=utf-8");
request.AddJsonBody(channelJson);
IRestResponse response = client.Execute(request);
if (response.StatusCode == HttpStatusCode.OK)
{
}
else {
}
但我收到以下错误(StatusCode: BadRequest):
"{\n \"error\" : \"Invalid data; couldn't parse JSON object, array, or value.\"\n}\n"
我尝试过使用curl对相同的数据执行PUTing操作,而且效果很好。找不到我哪里做错了。
发布于 2018-06-03 01:46:07
该对象正在被序列化两次(双重序列化)。
将channel
对象按原样传递给AddJsonBody
,request
将在发送正文之前将其序列化为JSON
request.AddJsonBody(channel);
假设这里的channel
是一个类的对象
发布于 2018-06-03 02:48:05
我已经对代码进行了细微的修改。请试一下这个
RestRequest request = new RestRequest("MemberAndChannels/{userId}/{channelId}.json", Method.POST);
request.AddParameter("auth", accessKey); // or request.AddHeader("auth", accessKey);
request.AddUrlSegment("userId", user.UUID);
request.AddUrlSegment("channelId", channel.UUID);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Accept", "application/json");
request.AddParameter("application/json", channelJson, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
if (response.StatusCode == HttpStatusCode.OK)
{
}
else {
}
发布于 2018-06-05 20:20:07
我也有同样的问题。
我解决了这个问题,修改了下面的代码:
request.AddParameter("auth", accessKey);
通过
request.AddQueryParameter("auth", accessKey);
希望能对你有所帮助。
问候
https://stackoverflow.com/questions/50658583
复制相似问题