|
@@ -1,7 +1,8 @@
|
1
|
|
-
|
2
|
1
|
import 'dart:convert';
|
3
|
2
|
|
4
|
3
|
import 'package:dio/dio.dart';
|
|
4
|
+import 'package:flutter/foundation.dart';
|
|
5
|
+import 'package:get/get.dart';
|
5
|
6
|
|
6
|
7
|
class Response {
|
7
|
8
|
late int code;
|
|
@@ -14,56 +15,66 @@ class Response {
|
14
|
15
|
this.data,
|
15
|
16
|
});
|
16
|
17
|
|
17
|
|
- factory Response.fromJson(dynamic str) => Response.fromMap(jsonDecode(str) as Map<String, dynamic>);
|
|
18
|
+ factory Response.fromJson(dynamic str) =>
|
|
19
|
+ Response.fromMap(jsonDecode(str) as Map<String, dynamic>);
|
18
|
20
|
|
19
|
21
|
factory Response.fromMap(Map<String, dynamic> resp) => Response(
|
20
|
|
- code: resp['code'],
|
21
|
|
- message: resp['message'],
|
22
|
|
- data: resp['data'],
|
23
|
|
- );
|
|
22
|
+ code: resp['code'],
|
|
23
|
+ message: resp['message'],
|
|
24
|
+ data: resp['data'],
|
|
25
|
+ );
|
24
|
26
|
}
|
25
|
27
|
|
|
28
|
+final client = GetPlatform.isAndroid ? 'android' : 'ios';
|
|
29
|
+
|
26
|
30
|
Dio createRequest() {
|
27
|
31
|
var options = BaseOptions(
|
28
|
|
- baseUrl: 'https://www.xx.com/api',
|
|
32
|
+ baseUrl: 'https://machine.njyunzhi.com/api/' + client + '/farmer',
|
29
|
33
|
connectTimeout: 5000,
|
30
|
34
|
receiveTimeout: 3000,
|
31
|
35
|
);
|
32
|
36
|
|
33
|
37
|
var dio = Dio(options);
|
34
|
|
- dio.interceptors.add(InterceptorsWrapper(
|
35
|
|
- onRequest:(options, handler){
|
36
|
|
- // Do something before request is sent
|
37
|
|
- return handler.next(options); //continue
|
38
|
|
- // If you want to resolve the request with some custom data,
|
39
|
|
- // you can resolve a `Response` object eg: `handler.resolve(response)`.
|
40
|
|
- // If you want to reject the request with a error message,
|
41
|
|
- // you can reject a `DioError` object eg: `handler.reject(dioError)`
|
42
|
|
- },
|
43
|
|
- onResponse:(response,handler) {
|
44
|
|
- Response resp = Response.fromJson(response.data['data']);
|
45
|
|
- if (resp.code == 1000) {
|
46
|
|
- response.data = resp.data;
|
47
|
|
- return handler.next(response);
|
48
|
|
- } else {
|
49
|
|
- return handler.reject(response.data);
|
50
|
|
- }
|
51
|
|
- },
|
52
|
|
- onError: (DioError e, handler) {
|
53
|
|
- // Do something with response error
|
54
|
|
- return handler.next(e);//continue
|
55
|
|
- // If you want to resolve the request with some custom data,
|
56
|
|
- // you can resolve a `Response` object eg: `handler.resolve(response)`.
|
57
|
|
- }
|
58
|
|
- ));
|
|
38
|
+ dio.interceptors.add(InterceptorsWrapper(onRequest: (options, handler) {
|
|
39
|
+ // Do something before request is sent
|
|
40
|
+ return handler.next(options); //continue
|
|
41
|
+ // If you want to resolve the request with some custom data,
|
|
42
|
+ // you can resolve a `Response` object eg: `handler.resolve(response)`.
|
|
43
|
+ // If you want to reject the request with a error message,
|
|
44
|
+ // you can reject a `DioError` object eg: `handler.reject(dioError)`
|
|
45
|
+ }, onResponse: (response, handler) {
|
|
46
|
+ var resp = response.data as Map<String, dynamic>;
|
|
47
|
+ if (resp['code'] == 1000) {
|
|
48
|
+ response.data = resp['data'];
|
|
49
|
+ return handler.next(response);
|
|
50
|
+ } else {
|
|
51
|
+ return handler.reject(response.data);
|
|
52
|
+ }
|
|
53
|
+ }, onError: (DioError e, handler) {
|
|
54
|
+ // Do something with response error
|
|
55
|
+ return handler.next(e); //continue
|
|
56
|
+ // If you want to resolve the request with some custom data,
|
|
57
|
+ // you can resolve a `Response` object eg: `handler.resolve(response)`.
|
|
58
|
+ }));
|
59
|
59
|
|
60
|
60
|
return dio;
|
61
|
61
|
}
|
62
|
62
|
|
63
|
63
|
var instance = createRequest();
|
64
|
64
|
|
65
|
|
-Future request (RequestOptions options) async {
|
66
|
|
- var resp = await instance.fetch(options);
|
|
65
|
+Future request(String path,
|
|
66
|
+ {data,
|
|
67
|
+ Map<String, dynamic>? queryParameters,
|
|
68
|
+ CancelToken? cancelToken,
|
|
69
|
+ Options? options,
|
|
70
|
+ ProgressCallback? onSendProgress,
|
|
71
|
+ ProgressCallback? onReceiveProgress}) async {
|
|
72
|
+
|
|
73
|
+ var resp = await instance.request(path,
|
|
74
|
+ data: data,
|
|
75
|
+ queryParameters: queryParameters,
|
|
76
|
+ cancelToken: cancelToken,
|
|
77
|
+ options: options);
|
67
|
78
|
|
68
|
79
|
if (resp.data.runtimeType == String) {
|
69
|
80
|
String dt = resp.data as String;
|