Index: pkg/http/lib/src/io_client.dart |
diff --git a/pkg/http/lib/src/io_client.dart b/pkg/http/lib/src/io_client.dart |
deleted file mode 100644 |
index 1114180cba763c3cb01d0652d28e16edec81e5a4..0000000000000000000000000000000000000000 |
--- a/pkg/http/lib/src/io_client.dart |
+++ /dev/null |
@@ -1,88 +0,0 @@ |
-// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file. |
- |
-library io_client; |
- |
-import 'dart:async'; |
- |
-import 'package:stack_trace/stack_trace.dart'; |
- |
-import 'base_client.dart'; |
-import 'base_request.dart'; |
-import 'exception.dart'; |
-import 'io.dart' as io; |
-import 'streamed_response.dart'; |
- |
-/// A `dart:io`-based HTTP client. |
-/// |
-/// This is the default client when running on the command line. |
-class IOClient extends BaseClient { |
- /// The underlying `dart:io` HTTP client. |
- var _inner; |
- |
- /// Creates a new HTTP client. |
- /// |
- /// [innerClient] must be a `dart:io` HTTP client. If it's not passed, a |
- /// default one will be instantiated. |
- IOClient([innerClient]) { |
- io.assertSupported("IOClient"); |
- if (innerClient != null) { |
- // TODO(nweiz): remove this assert when we can type [innerClient] |
- // properly. |
- assert(io.isHttpClient(innerClient)); |
- _inner = innerClient; |
- } else { |
- _inner = io.newHttpClient(); |
- } |
- } |
- |
- /// Sends an HTTP request and asynchronously returns the response. |
- Future<StreamedResponse> send(BaseRequest request) { |
- var stream = request.finalize(); |
- |
- return Chain.track(_inner.openUrl(request.method, request.url)) |
- .then((ioRequest) { |
- var contentLength = request.contentLength == null ? |
- -1 : request.contentLength; |
- ioRequest |
- ..followRedirects = request.followRedirects |
- ..maxRedirects = request.maxRedirects |
- ..contentLength = contentLength |
- ..persistentConnection = request.persistentConnection; |
- request.headers.forEach((name, value) { |
- ioRequest.headers.set(name, value); |
- }); |
- return Chain.track(stream.pipe(ioRequest)); |
- }).then((response) { |
- var headers = {}; |
- response.headers.forEach((key, values) { |
- headers[key] = values.join(','); |
- }); |
- |
- var contentLength = response.contentLength == -1 ? |
- null : response.contentLength; |
- return new StreamedResponse( |
- response.handleError((error) => |
- throw new ClientException(error.message, error.uri), |
- test: (error) => io.isHttpException(error)), |
- response.statusCode, |
- contentLength: contentLength, |
- request: request, |
- headers: headers, |
- isRedirect: response.isRedirect, |
- persistentConnection: response.persistentConnection, |
- reasonPhrase: response.reasonPhrase); |
- }).catchError((error) { |
- if (!io.isHttpException(error)) throw error; |
- throw new ClientException(error.message, error.uri); |
- }); |
- } |
- |
- /// Closes the client. This terminates all active connections. If a client |
- /// remains unclosed, the Dart process may not terminate. |
- void close() { |
- if (_inner != null) _inner.close(force: true); |
- _inner = null; |
- } |
-} |