首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我的应用程序接口在flutter中失败,并显示"SocketException: OS Error: Connection refused“,而在web或postman上却没有?

为什么我的应用程序接口在flutter中失败,并显示"SocketException: OS Error: Connection refused“,而在web或postman上却没有?
EN

Stack Overflow用户
提问于 2021-11-03 23:04:46
回答 1查看 73关注 0票数 0

我正在调用一个登录api,我可以让它在邮递员,在我的浏览器和本地android代码中工作,但是当我在flutter中调用相同的api时,我得到以下错误:

DioError [DioErrorType.other]: SocketException: OS Error: Connection refused, errno = 111, address = 10.0.0.25, port = 53330 #0

我知道api url是正确的,主体是正确的(这是一个post),头/cookie也是正确的,就像我在postman中设置的一样,它可以处理刚才提到的所有相同的信息。

以下是对API的调用

代码语言:javascript
运行
复制
    api.login(deviceId, requestObj).then((response) {
        _processLogin(response);
        _sofiPrefs!.saveEmail(email!);
        if (Foundation.kDebugMode) {
      _sofiPrefs!.saveDebugPassword(password);
        }
      }).catchError((error) {
        _loginError(error);
      });

和为DIO设置的api:(url已更改)

代码语言:javascript
运行
复制
part 'network_services.g.dart';

@RestApi()
abstract class NetworkServices {
  factory NetworkServices() {
    return _NetworkServices(serviceLocator<Dio>());
  }

  @POST("login/mobile/login")
  Future<HttpResponse<LoginResponsev3>> login(
      @Header(dIDHeader) String dId, @Body() LoginReq request);
}

和响应模型

代码语言:javascript
运行
复制
@JsonSerializable()
class LoginResponsev3 {
  String? email;
  String? twoFactorType;
  String? twoFactorData;
  String? twoFactorSessionToken; 

  LoginResponse(
      this.email,
      this.twoFactorType,
      this.twoFactorData,
      this.twoFactorSessionToken);

  factory LoginResponse.fromJson(Map<String, dynamic> json) =>
      _$LoginResponseFromJson(json);
  Map<String, dynamic> toJson() => _$LoginResponseToJson(this);
}
EN

回答 1

Stack Overflow用户

发布于 2021-11-04 00:18:08

请验证是否拥有android清单的internet权限。

代码语言:javascript
运行
复制
<uses-permission android:name="android.permission.INTERNET" />

并添加usesCleartextTraffic

代码语言:javascript
运行
复制
 <manifest ...>
 <uses-permission android:name="android.permission.INTERNET" />
 <application
    ...
    android:usesCleartextTraffic="true"
    ...>
    ...
</application>

更重要的是,这是一个移动/Web/桌面应用程序?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69832743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档