我已经在Docker上创建了一个服务器,并且我能够从postman 执行查询,例如,在本地主机:8000/api/sign-in/上发布包含以下内容的正文:

{
       "email": "john.doe1@example.com",
       "password": "tfX7WgBpkSCu"
}

我怎样才能把这个查询复制到Flutter 应用上呢? 目前,我try 了以下代码,但不起作用:

final email = emailController.text.trim();
final password = passwordController.text.trim();

const apiUrl = 'http://localhost:8000/api/sign-in/';

try {
  final response = await http.post(
    Uri.parse(apiUrl),
    headers: {'Content-Type': 'application/json'},
    body: jsonEncode({
      'email': email,
      'password': password,
    }),
  );

  if (response.statusCode == 200) {
    // Successful login
    final Map<String, dynamic> data = jsonDecode(response.body);
    final user = data['user'];
    final token = data['token'];

    // Now you can use the 'user' and 'token' as needed
    print('Logged in user: $user');
    print('Token: $token');

    // Navigate to the next screen or perform other actions
  } else {
    // Failed login
    print('Failed to login. Status code: ${response.statusCode}');
    print('Response body: ${response.body}');

    // Handle the error, show a message, etc.
  }
} catch (e) {
  // Handle any exceptions
  print('Error during login: $e');
}

我得到的错误是:

套接字异常:操作系统错误:连接被拒绝,错误号=111

谢谢

推荐答案

几个月前,我遇到了同样的问题.

如果您的服务器在本地运行,并且您使用的是Android模拟器,那么您应该try 将10.0.2.2:8000而不是localhost:8000切换为您的服务器端点,因为AVD使用10.0.2.2作为本地主机接口的别名.

Flutter相关问答推荐

为什么在Flutter中使用firebase数据库时获取引用时会划掉引用?

在Flutter TextField中计算子字符串位置

使用GO_ROUTER在模式内导航

为什么当我使用Riverpod更新状态时,列表会被刷新?

Flutter :执行com.android.build.gradle.internal.tasks.MergeNativeLibsTask$MergeNativeLibsTaskWorkAction时出现故障

Flutter GestureDetector单击问题-堆叠外面的按钮不可点击

Flutter 日期时间格式

如何在 Flutter 中设计像 zomato 应用程序一样的搜索字段?

参数类型void Function()无法分配给参数类型void Function(LongPressEndDetails)?

Flutter底部面板局部显示

如何在android中 Select 任何文件/文件路径 - Flutter

提供者、存储库和服务之间有什么区别?

如何在向下滚动时隐藏顶部卡片并在向上滚动时出现?

通过点击缩略图加载全屏图像

String类型不是Widget类型的子类型?在dart 中

在 Flame Forge2d 中射击子弹

Flutter 错误:正文可能正常完成,导致返回null

TextSpan 避免符号字符串组上的换行符

阴影效果只出现在一张卡片的左边 在Flutter 中?

参数类型Future>不能分配给参数类型Future>?