request method

  1. @override
Future<HttpResponse> request(
  1. String url, {
  2. String method,
  3. String data,
  4. Map<String, String> headers,
})
override

Implementation

@override
Future<HttpResponse> request(String url,
    {String method, String data, Map<String, String> headers}) async {
  numOutstanding++;

  Uri uri = Uri.parse(url);
  var request;
  switch (method) {
    case 'POST':
      request = await client.postUrl(uri);
      break;

    default:
      request = await client.getUrl(uri);
      break;
  }

  if (headers != null) {
    headers
        .forEach((String key, String value) => request.headers[key] = value);
  }

  if (debugPrint != null) debugPrint('HTTP Request: ${request.uri}');
  var response = await request.close();
  HttpResponse ret = HttpResponse(response.statusCode);
  await for (var contents in response.transform(Utf8Decoder())) {
    if (ret.text == null) {
      ret.text = contents;
    } else {
      ret.text += contents;
    }
  }

  if (debugPrint != null) {
    debugPrint('HTTP Response=${ret.status}: ${ret.text}');
  }
  numOutstanding--;
  return ret;
}