flutter使用Android模拟器调用地址为127.0.0.1的本地接口出现问题

记录:

问题

自己写的后端接口,调用地址为本地的http://127.0.0.1,在ios模拟器上调用接口时正常,但在Android模拟器上调用接口出现报错

E/flutter ( 4257): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Connection refused
E/flutter ( 4257): #0      IOClient.send (package:http/src/io_client.dart:88:7)
E/flutter ( 4257): <asynchronous suspension>
E/flutter ( 4257): #1      BaseRequest.send (package:http/src/base_request.dart:133:22)
E/flutter ( 4257): <asynchronous suspension>
E/flutter ( 4257): #2      httpInstance (package:kanban/utils/http.dart:20:36)
E/flutter ( 4257): <asynchronous suspension>
E/flutter ( 4257): #3      _LoginPageState.loginUser (package:kanban/pages/login/login.dart:94:18)
E/flutter ( 4257): <asynchronous suspension>

是因为Android模拟器本身把自己当做了localhost或127.0.0.1,所以会抛出异常。

解决方法:

调用接口时不用localhost或者127.0.0.1,使用自己电脑的IP地址(192.168.xxx.xxx)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Flutter的camera插件来实现在Android Studio中调用手机模拟器摄像头实现拍照功能。以下是实现步骤: 1. 在pubspec.yaml文件中添加camera插件依赖: ``` dependencies: camera: ^0.9.4+5 ``` 2. 在Flutter项目中引入camera插件: ``` import 'package:camera/camera.dart'; ``` 3. 初始化摄像头: ``` List<CameraDescription> cameras; Future<void> initCamera() async { cameras = await availableCameras(); // 选择第一个摄像头 final firstCamera = cameras.first; final camera = CameraController( firstCamera, ResolutionPreset.medium, ); await camera.initialize(); setState(() { _camera = camera; }); } ``` 4. 在Flutter页面中显示摄像头预览: ``` @override void initState() { super.initState(); initCamera(); } @override void dispose() { _camera.dispose(); super.dispose(); } @override Widget build(BuildContext context) { return Scaffold( body: _camera == null ? Container() : AspectRatio( aspectRatio: _camera.value.aspectRatio, child: CameraPreview(_camera), ), ); } ``` 5. 实现拍照功能: ``` void takePicture() async { final picturePath = join( (await getTemporaryDirectory()).path, '${DateTime.now()}.png', ); await _camera.takePicture(picturePath); } ``` 6. 在Flutter页面中添加一个按钮,调用takePicture()方法实现拍照: ``` FloatingActionButton( onPressed: takePicture, child: Icon(Icons.camera_alt), ), ``` 完成上述步骤后,您就可以在Android Studio中调用手机模拟器摄像头实现拍照功能了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值