如标题所示,我的问题是 Flutter 3.16.3 和 http: ^1.1.2 - 我正在使用:Windows 11 - Developing for Android, VSCode。
我在 Flutter 中的代码不会继续超出
final response
行,如下所示:
Future<Users> fetchAlbum() async {
final baseHeader = {
HttpHeaders.connectionHeader: "keep-alive",
HttpHeaders.accessControlAllowOriginHeader: "*",
HttpHeaders.contentTypeHeader: "application/json; charset=utf-8",
HttpHeaders.accessControlAllowHeadersHeader: "*.",
HttpHeaders.accessControlAllowMethodsHeader: "POST, GET",
HttpHeaders.accessControlMaxAgeHeader: 86400.toString(),
};
final response = await http.get(
Uri.parse('http://apiclbrb.test/login/controller/get_all_users_sem_auth'),
headers: baseHeader);
if (response.statusCode == 200) {
我用 PHP 创建了返回 JSON 的 API。
然后PHP做的API返回数据:
附加信息:
1 - 如果我删除 URI 的任何部分,例如 http://,Flutter 会正确显示 URL 错误:
发生异常。
ArgumentError(无效参数:URI apiclbrb.test/login/controller/get_all_users_sem_auth 中未指定主机)
这表明Flutter输入了完整的URI并且不认为这是一个错误,但由于某种原因它没有进行。
2 - 至于环境,使用 Flutter doctor 我没有任何问题。
3 - Postman 标头 - 返回 Status: 200 OK,是:
无论如何,我需要在 Flutter 或 PHP API 中定义什么才能让两者进行对话?我希望有人已经经历过这个。
问题解决了。即便如此,我也不会删除这个问题,因为同事可能也会经历同样的事情。
问题出在 URL 上。尽管这听起来不错,但它只是一个网址。
当我将 URL 放入浏览器或 Postman 或使用 Curl 的客户端应用程序时,每个人都使用 laragon 给出的格式,即: http://apiclbrb.test/login/controller/get_all_users_sem_auth 我相信 xamp 或任何其他使用 PHP 的 Web 开发环境都会像这样。
当我使用这个 URL 并将其放入 Flutter 中时,没有任何反应。所以我将网址更改为:http://192.168.18.2/apiclbrb/login/controller/get_all_users_sem_auth/
使用 ipconfig,我看到了我机器的 IPv4 地址,瞧,问题解决了,看到 Flutter 中出现的数据:
我希望它对某人有价值。给每个人一个拥抱。问题解决了。我只是不知道如何将其标记为已解决。