Quickblox颤振自定义对象更新不起作用
Posted
技术标签:
【中文标题】Quickblox颤振自定义对象更新不起作用【英文标题】:Quickblox flutter custom objects update not working 【发布时间】:2021-10-30 18:34:37 【问题描述】:根据 Quickblox 文档here,可以使用此示例从 Flutter SDK 更新自定义对象:
String className = "TestFlutterClass";
String id = "5d4175afa0eb4715cae5b63f";
Map<String, Object> fieldsMap = Map();
fieldsMap['testString'] = "testField1";
fieldsMap['testInteger'] = 123;
fieldsMap['testBoolean'] = true;
try
QBCustomObject? customObject = await QB.data.update(className, id: id, fields: fieldsMap);
on PlatformException catch (e)
// Some error occurred, look at the exception message for more details
上面的这段代码似乎没有工作或返回任何东西。
我还尝试通过使用以下代码将 HTTP 发布到 Rest API 来更新自定义对象
String url = "https://api.quickblox.com/data/GAMES/61794c291558ea0059ce2c90.json";
Map map = 'data': 'PLAYERS_STATUS': sts,;
await apiRequest(url, map);
Future<String> apiRequest(String url, Map jsonMap) async
HttpClient httpClient = new HttpClient();
HttpClientRequest request = await httpClient.postUrl(Uri.parse(url));
request.headers.set('content-type', 'application/json');
request.headers.set('QB-token', session);
request.add(utf8.encode(json.encode(jsonMap)));
HttpClientResponse response = await request.close();
// todo - you should check the response.statusCode
String reply = await response.transform(utf8.decoder).join();
httpClient.close();
return reply;
此代码返回错误消息
找不到资源
现在我知道该记录存在,因为我可以在仪表板上看到该记录并且所有班级权限都已打开。
欢迎任何帮助!
【问题讨论】:
【参考方案1】:在用于更新记录的服务器 API 中,您需要使用 PUT 请求方法。我可以看到你发送了 POST 请求。 尝试使用 PUT 请求方法而不是 POST https://api.flutter.dev/flutter/dart-io/HttpClient/putUrl.html
【讨论】:
我正在使用 dio 在服务器上进行编辑,但 put 不适用于图片上传。这是来自您的网站docs.quickblox.com/reference/upload-update-file 的教程。这显然使用 post not put以上是关于Quickblox颤振自定义对象更新不起作用的主要内容,如果未能解决你的问题,请参考以下文章