[英]BadRequest when PUT JSON data on Firebase REST API
我有这个代码用于在Firebase数据库上输出我的JSON字符串:
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相同的数据,它工作。 无法弄清楚我做错了什么。
该对象被序列化两次(双序列化)。
将channel
对象原样传递给AddJsonBody
, request
在发送正文之前将其序列化为JSON
request.AddJsonBody(channel);
假设这里的channel
是一个类的对象
我稍微修改了代码。 请试试这个
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 {
}
我有同样的问题。
我发现它改变了这段代码:
request.AddParameter("auth", accessKey);
通过
request.AddQueryParameter("auth", accessKey);
我希望能帮助你。
问候
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.