Как прочитать Http ответ от флаттера? - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь прочитать ответ от HTTP во флаттере, но я не читал. Я разместил запрос. Может кто-нибудь знает, что не так?

final http.Client client;

Future<http.Response> post(
  Uri uri, {
    Map<String, dynamic> postParams,
    String accessToken,
  }) async {
log.info(uri.toString());
log.info('postParams: ${postParams?.toString()}');

///Encode map to bytes
String jsonString = json.encode(postParams);
List<int> bodyBytes = utf8.encode(jsonString);

Map headers = {
  HttpHeaders.contentTypeHeader: 'application/json; charset=utf-8',
};


final response = await client
    .post(
  uri,
  body: bodyBytes,
  headers: headers,
)
    .timeout(Duration(seconds: 120));
}

1 Ответ

0 голосов
/ 26 февраля 2020

Вы можете реализовать эту функцию следующим образом

1.install http package и импортировать его следующим образом

    import 'package:http/http.dart' as http;

Создайте экземпляр http или http.Client, как вы это сделали

final http.Client _client = http.Client();

Отправьте запрос на сервер следующим образом

var url = 'https://example.com/store/.....'; 

final Map<String, dynamic> data= {"name":"John Doe", "email":"johndoe@email.com"};

final Map<String, String> _headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
 };

var response = await _client.post(url, body:data, headers:_headers);

Тогда вы можете прочитать ответ как

 if(response.statusCode == 200) {
   var decoded = json.decode(response.body);
   print(decoded);

   // The Rest of code 
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...