首先,我使用Windows和最新的Flutter和Parse安装。
这就是我如何启动Parse:
await Parse().initialize(
"myAppId",
"http://192.168.1.55:4040/parse/",
debug: true
);
这里的代码给出了错误:
var obj = ParseObject("GameScore");
obj.set<int>("score", 123);
obj.set<String>("playerName", "Ahmed Hammad");
obj.set<bool>("cheatMode", false);
await obj.save();
下面是我得到的详细错误:
I/flutter (31178): ╭-- Parse Request
I/flutter (31178): curl -X POST -H 'content-type: text/plain; charset=utf-8' -H 'user-agent: Flutter Parse SDK 4.0.2' -H 'X-Parse-Application-Id: myAppId' -d '{"score":123,"playerName":"Ahmed Hammad","cheatMode":false}' http://192.168.1.55:4040/parse/classes/GameScore
I/flutter (31178):
I/flutter (31178): http://192.168.1.55:4040/parse/classes/GameScore
I/flutter (31178): ╰--
I/flutter (31178): ╭-- Parse Response
I/flutter (31178): Class: GameScore
I/flutter (31178): Function: ParseApiRQ.create
I/flutter (31178): Status Code: -1
I/flutter (31178): Type: OtherCause
I/flutter (31178): Exception: FormatException: Unexpected end of input (at character 1)
I/flutter (31178):
I/flutter (31178): ^
I/flutter (31178):
I/flutter (31178): ╰--
但是当我发送记录的curl命令的复制/粘贴时,我得到了成功添加的数据。
感谢支持。
1条答案
按热度按时间y4ekin9u1#
原因现在很清楚了。
curl在我的PC上运行,但上面的代码在我的Android模拟器Nexus 5X API30上运行并失败。
当我直接在Android设备上运行相同的代码时,它可以工作。
为什么Emulator失败?我发现你必须从模拟器中使用特殊地址:参见How to connect to a local server from an android emulator?