Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Side by Side Diff: pkg/http/lib/http.dart

Issue 216603010: Rip out dart:io from pkg/http wherever possible. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: code review Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « pkg/http/CHANGELOG.md ('k') | pkg/http/lib/src/base_client.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 /// A composable, [Future]-based library for making HTTP requests. 5 /// A composable, [Future]-based library for making HTTP requests.
6 /// 6 ///
7 /// ## Installing ## 7 /// ## Installing ##
8 /// 8 ///
9 /// Use [pub][] to install this package. Add the following to your 9 /// Use [pub][] to install this package. Add the following to your
10 /// `pubspec.yaml` file. 10 /// `pubspec.yaml` file.
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 /// to add behavior should create a subclass of [BaseClient] that wraps another 52 /// to add behavior should create a subclass of [BaseClient] that wraps another
53 /// [Client] and adds the desired behavior: 53 /// [Client] and adds the desired behavior:
54 /// 54 ///
55 /// class UserAgentClient extends http.BaseClient { 55 /// class UserAgentClient extends http.BaseClient {
56 /// final String userAgent; 56 /// final String userAgent;
57 /// final http.Client _inner; 57 /// final http.Client _inner;
58 /// 58 ///
59 /// UserAgentClient(this.userAgent, this._inner); 59 /// UserAgentClient(this.userAgent, this._inner);
60 /// 60 ///
61 /// Future<StreamedResponse> send(BaseRequest request) { 61 /// Future<StreamedResponse> send(BaseRequest request) {
62 /// request.headers[HttpHeaders.USER_AGENT] = userAgent; 62 /// request.headers['user-agent'] = userAgent;
63 /// return _inner.send(request); 63 /// return _inner.send(request);
64 /// } 64 /// }
65 /// } 65 /// }
66 /// 66 ///
67 /// [pub]: http://pub.dartlang.org 67 /// [pub]: http://pub.dartlang.org
68 library http; 68 library http;
69 69
70 import 'dart:async'; 70 import 'dart:async';
71 import 'dart:convert'; 71 import 'dart:convert';
72 import 'dart:typed_data'; 72 import 'dart:typed_data';
73 73
74 import 'src/client.dart'; 74 import 'src/client.dart';
75 import 'src/response.dart'; 75 import 'src/response.dart';
76 76
77 export 'src/base_client.dart'; 77 export 'src/base_client.dart';
78 export 'src/base_request.dart'; 78 export 'src/base_request.dart';
79 export 'src/base_response.dart'; 79 export 'src/base_response.dart';
80 export 'src/byte_stream.dart'; 80 export 'src/byte_stream.dart';
81 export 'src/client.dart'; 81 export 'src/client.dart';
82 export 'src/exception.dart';
82 export 'src/multipart_file.dart'; 83 export 'src/multipart_file.dart';
83 export 'src/multipart_request.dart'; 84 export 'src/multipart_request.dart';
84 export 'src/request.dart'; 85 export 'src/request.dart';
85 export 'src/response.dart'; 86 export 'src/response.dart';
86 export 'src/streamed_request.dart'; 87 export 'src/streamed_request.dart';
87 export 'src/streamed_response.dart'; 88 export 'src/streamed_response.dart';
88 89
89 /// Sends an HTTP HEAD request with the given headers to the given URL, which 90 /// Sends an HTTP HEAD request with the given headers to the given URL, which
90 /// can be a [Uri] or a [String]. 91 /// can be a [Uri] or a [String].
91 /// 92 ///
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 /// the same server, you should use a single [Client] for all of those requests. 165 /// the same server, you should use a single [Client] for all of those requests.
165 /// 166 ///
166 /// For more fine-grained control over the request, use [Request] instead. 167 /// For more fine-grained control over the request, use [Request] instead.
167 Future<Response> delete(url, {Map<String, String> headers}) => 168 Future<Response> delete(url, {Map<String, String> headers}) =>
168 _withClient((client) => client.delete(url, headers: headers)); 169 _withClient((client) => client.delete(url, headers: headers));
169 170
170 /// Sends an HTTP GET request with the given headers to the given URL, which can 171 /// Sends an HTTP GET request with the given headers to the given URL, which can
171 /// be a [Uri] or a [String], and returns a Future that completes to the body of 172 /// be a [Uri] or a [String], and returns a Future that completes to the body of
172 /// the response as a [String]. 173 /// the response as a [String].
173 /// 174 ///
174 /// The Future will emit an [HttpException] if the response doesn't have a 175 /// The Future will emit a [ClientException] if the response doesn't have a
175 /// success status code. 176 /// success status code.
176 /// 177 ///
177 /// This automatically initializes a new [Client] and closes that client once 178 /// This automatically initializes a new [Client] and closes that client once
178 /// the request is complete. If you're planning on making multiple requests to 179 /// the request is complete. If you're planning on making multiple requests to
179 /// the same server, you should use a single [Client] for all of those requests. 180 /// the same server, you should use a single [Client] for all of those requests.
180 /// 181 ///
181 /// For more fine-grained control over the request and response, use [Request] 182 /// For more fine-grained control over the request and response, use [Request]
182 /// instead. 183 /// instead.
183 Future<String> read(url, {Map<String, String> headers}) => 184 Future<String> read(url, {Map<String, String> headers}) =>
184 _withClient((client) => client.read(url, headers: headers)); 185 _withClient((client) => client.read(url, headers: headers));
185 186
186 /// Sends an HTTP GET request with the given headers to the given URL, which can 187 /// Sends an HTTP GET request with the given headers to the given URL, which can
187 /// be a [Uri] or a [String], and returns a Future that completes to the body of 188 /// be a [Uri] or a [String], and returns a Future that completes to the body of
188 /// the response as a list of bytes. 189 /// the response as a list of bytes.
189 /// 190 ///
190 /// The Future will emit an [HttpException] if the response doesn't have a 191 /// The Future will emit a [ClientException] if the response doesn't have a
191 /// success status code. 192 /// success status code.
192 /// 193 ///
193 /// This automatically initializes a new [Client] and closes that client once 194 /// This automatically initializes a new [Client] and closes that client once
194 /// the request is complete. If you're planning on making multiple requests to 195 /// the request is complete. If you're planning on making multiple requests to
195 /// the same server, you should use a single [Client] for all of those requests. 196 /// the same server, you should use a single [Client] for all of those requests.
196 /// 197 ///
197 /// For more fine-grained control over the request and response, use [Request] 198 /// For more fine-grained control over the request and response, use [Request]
198 /// instead. 199 /// instead.
199 Future<Uint8List> readBytes(url, {Map<String, String> headers}) => 200 Future<Uint8List> readBytes(url, {Map<String, String> headers}) =>
200 _withClient((client) => client.readBytes(url, headers: headers)); 201 _withClient((client) => client.readBytes(url, headers: headers));
201 202
202 Future _withClient(Future fn(Client)) { 203 Future _withClient(Future fn(Client)) {
203 var client = new Client(); 204 var client = new Client();
204 var future = fn(client); 205 var future = fn(client);
205 return future.whenComplete(client.close); 206 return future.whenComplete(client.close);
206 } 207 }
OLDNEW
« no previous file with comments | « pkg/http/CHANGELOG.md ('k') | pkg/http/lib/src/base_client.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698