Общий метод для вызовов api flutter

#flutter #flutter-http

Вопрос:

Есть ли какой-либо пример,на который я могу сослаться, об общем классе/методе для вызовов API flutter(GET, POST,…) в flutter? Я обработал все запросы API общим методом в react native, я не уверен, как реализовать его в flutter.

Ответ №1:

вы должны вызвать GetRequest, используя параметр url

 Futurelt;Responsegt; getRequest(String url) async {  Response response;  try {  response = await _dio.get(url,  options: Options(headers: {  HttpHeaders.authorizationHeader:  'Bearer $accessToken'  }));  print('response $response');  } on DioError catch (e) {  print(e.message);  throw Exception(e.message);  }  return response;  }  

вот метод post

 Futurelt;Responsegt; posRequestImage(String url, data) async {   try {  response = await _dio.post(  url,  data: formData,  options: Options(headers: {  HttpHeaders.authorizationHeader:  'Bearer $accessToken'  }),  );  if (response.statusCode == 200) {  return response;  }  print('post response $response');  } on DioError catch (e) {  print(e.message);  throw Exception(e.response?.statusMessage);  }  return response;  }  

Комментарии:

1. Спасибо! Не могли бы вы, пожалуйста, показать мне на принимающей стороне, должен ли я вызывать этот метод, например, Futurelt;Responsegt; res = GetRequest(uri) ?

2. о, вы можете позвонить так: окончательный ответ = ожидание _httpService.GetRequest(‘$конечная точка’); окончательные заказы = AllOrderListModel.FromJSON(response.data); возвращенные заказы;

Ответ №2:

Вы можете создать класс для его обработки. Например, это мой класс для обработки всех служб для пользовательской модели

 import 'package:http/http.dart' as http;  class UserService {  var baseUrl = URL.devAddress;   Futurelt;Usergt; getUser() async {  final response = await http.get(  Uri.parse(baseUrl   "user/1")  );  if (response.statusCode == 200) {  final data = json.decode(response.body);  return data  } else {  throw Exception("Failed");  }  } }  

Ответ №3:

 Futurelt;voidgt; getUser(String username) async {   Uri uri = Uri.parse('https://example.com');  try {  Maplt;String, dynamicgt; params = new HashMap();  params['username'] = username;   final response = await client.post(uri,  body: jsonEncode(params),  );  print("response ${response.body}");  } on FetchDataException {  throw FetchDataException("No Internet connection");  }  

}