post method

Future<Result<ResType>> post(
  1. ReqType req
)

Implementation

Future<Result<ResType>> post(ReqType req) async {
  var urlString = '$baseUrl$path';
  var url = Uri.parse(urlString);

  final encoding = Encoding.getByName('utf-8');
  final body = jsonEncode(req);
  final response = await http.post(
    url,
    body: body,
    headers: {
      'Content-Type': 'application/json',
    },
    encoding: encoding,
  );
  if (response.statusCode == 200) {
    // utf8で受け取る
    final rawString = utf8.decode(response.bodyBytes);
    final ResType res = jsonDecode(rawString);
    return Result.ok(res);
  } else {
    final error = AppError(
      id: 'httpBadStatus',
      detail: 'Status Code: ${response.statusCode}',
    );
    return Result.error(error);
  }
}