Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter '的实例;回应<;动态>';颤振Api消耗_Flutter_Chopper - Fatal编程技术网

Flutter '的实例;回应<;动态>';颤振Api消耗

Flutter '的实例;回应<;动态>';颤振Api消耗,flutter,chopper,Flutter,Chopper,我正在尝试使用chopper在颤振中发出post请求。我已将ApiService.dart文件作为 生成器文件 import 'package:bindle/Chopper/Models/LoginResponse.dart'; import 'package:chopper/chopper.dart'; part 'ApiService.chopper.dart'; @ChopperApi(baseUrl: 'http://192.168.1.20/bindal/api/v1/user/')

我正在尝试使用chopper在颤振中发出post请求。我已将ApiService.dart文件作为 生成器文件

import 'package:bindle/Chopper/Models/LoginResponse.dart';
import 'package:chopper/chopper.dart';
part 'ApiService.chopper.dart';

@ChopperApi(baseUrl: 'http://192.168.1.20/bindal/api/v1/user/')
abstract class ApiService extends ChopperService {

  @Post(path: "login")
  Future<Response<LoginResponse>> doLogin([
  @Header('auth_key') String authType,
  @Query('email') String email,
  @Query('password') String password,
  @Query('userType') String userType,
  ]);

  static ApiService create() {
  final client = ChopperClient(
   // The first part of the URL is now here
   baseUrl: 'http://192.168.1.20/bindal/api/v1/user/',
   services: [
     // The generated implementation
     _$ApiService(),
   ],
   interceptors: [
    HttpLoggingInterceptor()
   ],
    // Converts data to & from JSON and adds the application/json header.
    converter: JsonConverter(),
  );

  // The generated class with the ChopperClient passed in
  return _$ApiService(client);
 }
}
导入“包:bindle/Chopper/Models/LoginResponse.dart”; 进口“包装:切碎器/切碎器.省道”; 第二部分“ApiService.chopper.dart”; @ChopperApi(baseUrl:'http://192.168.1.20/bindal/api/v1/user/') 抽象类ApiService扩展了ChopperService{ @Post(路径:“登录”) 未来多洛金([ @标题('auth_key')字符串authType, @查询('email')字符串电子邮件, @查询('password')字符串密码, @查询('userType')字符串用户类型, ]); 静态API服务创建(){ 最终客户端=斩波客户端( //URL的第一部分现在在这里 baseUrl:'http://192.168.1.20/bindal/api/v1/user/', 服务:[ //生成的实现 _$ApiService(), ], 拦截器:[ HttpLoggingInterceptor() ], //将数据转换为JSON并添加应用程序/JSON头。 转换器:JsonConverter(), ); //传入ChopperClient的生成类 退货服务(客户); } } 这是我生成的文件

// GENERATED CODE - DO NOT MODIFY BY HAND

part of 'ApiService.dart';

// **************************************************************************
// ChopperGenerator
// **************************************************************************

class _$ApiService extends ApiService {
 _$ApiService([ChopperClient client]) {
 if (client == null) return;
 this.client = client;
}

final definitionType = ApiService;

Future<Response<LoginResponse>> doLogin(
   [String authType, String email, String password, String userType]) {
  final $url = 'http://192.168.1.20/bindal/api/v1/user/login';
  final Map<String, dynamic> $params = {
  'email': email,
  'password': password,
  'userType': userType
 };
 final $headers = {'auth_key': authType};
 final $request = Request('POST', $url, client.baseUrl,
    parameters: $params, headers: $headers);
return client.send<LoginResponse, LoginResponse>($request);
 }
}
//生成的代码-不要手动修改
“ApiService.dart”的一部分;
// **************************************************************************
//斩波发生器
// **************************************************************************
类$ApiService扩展了ApiService{
_$ApiService([ChopperClient]){
if(client==null)返回;
this.client=client;
}
最终定义类型=ApiService;
未来多洛金(
[字符串身份验证类型、字符串电子邮件、字符串密码、字符串用户类型]){
最终$url=http://192.168.1.20/bindal/api/v1/user/login';
最终映射$params={
“电子邮件”:电子邮件,
“密码”:密码,
“userType”:userType
};
final$headers={'auth_key':authType};
final$request=request('POST',$url,client.baseUrl,
参数:$params,headers:$headers);
返回client.send($request);
}
}
接下来我要做的是生成一个名为LoginResponse的模型类,在这里我必须获取数据

abstract class LoginResponse implements Built<LoginResponse, LoginResponseBuilder> {

int get status;
String get message;

LoginResponse._();

factory LoginResponse([void Function(LoginResponseBuilder) updates]) = _$LoginResponse;
static LoginResponse fromJson(String jsonString){
return serializers.deserializeWith(LoginResponse.serializer, json.decode(jsonString));
}
 static Serializer<LoginResponse> get serializer => _$loginResponseSerializer; 
 }
抽象类LoginResponse实现构建{
int获取状态;
字符串获取消息;
登录应答;
factory LoginResponse([无效函数(LoginResponseBuilder)更新]=\uu$LoginResponse;
静态登录响应来自JSON(字符串jsonString){
返回serializers.deserializeWith(LoginResponse.serializer,json.decode(jsonString));
}
静态序列化程序get Serializer=>\u$loginResponseSerializer;
}
这是使用内置值生成器为上述LoginResponse.dart文件生成的文件

// GENERATED CODE - DO NOT MODIFY BY HAND

part of 'LoginResponse.dart';

// **************************************************************************
// BuiltValueGenerator
// **************************************************************************

Serializer<LoginResponse> _$loginResponseSerializer =
 new _$LoginResponseSerializer();

class _$LoginResponseSerializer implements StructuredSerializer<LoginResponse> {
@override
final Iterable<Type> types = const [LoginResponse, _$LoginResponse];
@override
final String wireName = 'LoginResponse';

@override
Iterable<Object> serialize(Serializers serializers, LoginResponse object,
   {FullType specifiedType = FullType.unspecified}) {
   final result = <Object>[
   'status',
   serializers.serialize(object.status, specifiedType: const FullType(int)),
   'message',
   serializers.serialize(object.message,
       specifiedType: const FullType(String)),
  ];

 return result;
 }

 @override
 LoginResponse deserialize(
    Serializers serializers, Iterable<Object> serialized,
    {FullType specifiedType = FullType.unspecified}) {
    final result = new LoginResponseBuilder();

   final iterator = serialized.iterator;
   while (iterator.moveNext()) {
   final key = iterator.current as String;
   iterator.moveNext();
   final dynamic value = iterator.current;
   switch (key) {
     case 'status':
       result.status = serializers.deserialize(value,
           specifiedType: const FullType(int)) as int;
       break;

    case 'message':
       result.message = serializers.deserialize(value,
           specifiedType: const FullType(String)) as String;
       break;
   }
 }

 return result.build();
  }
 }

 class _$LoginResponse extends LoginResponse {
@override
final int status;
@override
final String message;

factory _$LoginResponse([void Function(LoginResponseBuilder) updates]) =>
   (new LoginResponseBuilder()..update(updates)).build();

_$LoginResponse._({this.status, this.message}) : super._() {
 if (status == null) {
   throw new BuiltValueNullFieldError('LoginResponse', 'status');
 }
 if (message == null) {
   throw new BuiltValueNullFieldError('LoginResponse', 'message');
   }
  }

 @override
 LoginResponse rebuild(void Function(LoginResponseBuilder) updates) =>
   (toBuilder()..update(updates)).build();

  @override
 LoginResponseBuilder toBuilder() => new LoginResponseBuilder()..replace(this);

@override
bool operator ==(Object other) {
if (identical(other, this)) return true;
return other is LoginResponse &&
    status == other.status &&
    message == other.message;
//生成的代码-不要手动修改
“LoginResponse.dart”的一部分;
// **************************************************************************
//内置值生成器
// **************************************************************************
序列化程序$loginResponseSerializer=
新的$LoginResponseSerializer();
类$LoginResponseSerializer实现StructuredSerializer{
@凌驾
final Iterable types=const[LoginResponse,$LoginResponse];
@凌驾
最终字符串wireName='LoginResponse';
@凌驾
Iterable serialize(序列化程序、序列化程序、LoginResponse对象、,
{FullType specifiedType=FullType.unspecified}){
最终结果=[
"地位",,
serializers.serialize(object.status,specifiedType:const FullType(int)),
"讯息",,
serializers.serialize(object.message,
specifiedType:const FullType(字符串)),
];
返回结果;
}
@凌驾
LoginResponse反序列化(
序列化程序序列化程序,Iterable序列化,
{FullType specifiedType=FullType.unspecified}){
最终结果=新的LoginResponseBuilder();
final iterator=serialized.iterator;
while(iterator.moveNext()){
final key=iterator.current作为字符串;
iterator.moveNext();
最终动态值=iterator.current;
开关(钥匙){
案例“状态”:
result.status=序列化程序。反序列化(值,
指定类型:constfulltype(int))为int;
打破
案例“信息”:
result.message=序列化程序。反序列化(值,
指定类型:const FullType(String))作为字符串;
打破
}
}
返回result.build();
}
}
类$LoginResponse扩展了LoginResponse{
@凌驾
最终国际地位;
@凌驾
最终字符串消息;
工厂$LoginResponse([无效函数(LoginResponseBuilder)更新]=>
(新建LoginResponseBuilder()…更新(更新)).build();
_$LoginResponse.({this.status,this.message}):超级。(){
如果(状态==null){
抛出新的BuiltValueNullFieldError('LoginResponse','status');
}
如果(消息==null){
抛出新的BuiltValueNullFieldError('LoginResponse','message');
}
}
@凌驾
LoginResponse重建(无效函数(LoginResponseBuilder)更新)=>
(toBuilder()…更新(updates)).build();
@凌驾
LoginResponseBuilder toBuilder()=>新LoginResponseBuilder()…替换(此);
@凌驾
布尔运算符==(对象其他){
如果(相同(其他,本))返回true;
返回另一个是LoginResponse&&
状态==其他状态&&
message==other.message;
}

@覆盖
int获取哈希代码{
返回$jf($jc($jc(0,status.hashCode),message.hashCode));
}
@凌驾
字符串toString(){
返回(newBuiltValueToStringHelper('LoginResponse'))
…添加('状态',状态)
…添加('消息',消息))
.toString();
}
}
类LoginResponseBuilder
工具生成器{
_$LoginResponse_uv;
国际地位;
int get status=>\uu$this.\u status;
设置状态(int status)=>this.\u状态=状态;
字符串消息;
字符串get message=>\u$this.\u message;
设置消息(字符串消息)=>this.\u消息=消息;
LoginResponseBuilder();
LoginResponseBuilder获取此{
如果($v!=null){
_状态=u$v.status;
_message=$v.message;
_$v=null;
}
归还这个;
}
@凌驾
无效替换(登录响应其他){
如果(其他==null){
  @override
 int get hashCode {
  return $jf($jc($jc(0, status.hashCode), message.hashCode));
 }

  @override
  String toString() {
  return (newBuiltValueToStringHelper('LoginResponse')
      ..add('status', status)
      ..add('message', message))
    .toString();
   }
  }

  class LoginResponseBuilder
   implements Builder<LoginResponse, LoginResponseBuilder> {
   _$LoginResponse _$v;

  int _status;
  int get status => _$this._status;
  set status(int status) => _$this._status = status;

  String _message;
  String get message => _$this._message;
  set message(String message) => _$this._message = message;

 LoginResponseBuilder();

  LoginResponseBuilder get _$this {
 if (_$v != null) {
   _status = _$v.status;
   _message = _$v.message;
   _$v = null;
  }
  return this;
 }

  @override
  void replace(LoginResponse other) {
   if (other == null) {
    throw new ArgumentError.notNull('other');
   }
   _$v = other as _$LoginResponse;
 }

  @override
  void update(void Function(LoginResponseBuilder) updates) {
   if (updates != null) updates(this);
  }

  @override
  _$LoginResponse build() {
   final _$result =
      _$v ?? new _$LoginResponse._(status: status, message: message);
   replace(_$result);
   return _$result;
 }
 }
  void doLogin(String email, String pass, BuildContext context) async {
  try {
   final response = await Provider.of<ApiService>(context)
  .doLogin("d1d2fe0514f7d5c748c0e7e085b36f74","arpit1692@gmail.com",
  "e10adc3949ba59abbe56e057f20f883e","App");
   print(response.body);
  } catch (e) {
    print(e);
  }
 }