OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 /** | 5 /** |
6 * Helper functionality to make working with IO easier. | 6 * Helper functionality to make working with IO easier. |
7 */ | 7 */ |
8 #library('io'); | 8 #library('io'); |
9 | 9 |
10 #import('dart:io'); | 10 #import('dart:io'); |
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
284 */ | 284 */ |
285 // TODO(rnystrom): Should this be async? | 285 // TODO(rnystrom): Should this be async? |
286 String getFullPath(entry) => new File(_getPath(entry)).fullPathSync(); | 286 String getFullPath(entry) => new File(_getPath(entry)).fullPathSync(); |
287 | 287 |
288 /** | 288 /** |
289 * Opens an input stream for a HTTP GET request to [uri], which may be a | 289 * Opens an input stream for a HTTP GET request to [uri], which may be a |
290 * [String] or [Uri]. | 290 * [String] or [Uri]. |
291 */ | 291 */ |
292 InputStream httpGet(uri) { | 292 InputStream httpGet(uri) { |
293 var resultStream = new ListInputStream(); | 293 var resultStream = new ListInputStream(); |
294 var connection = new HttpClient().getUrl(_getUri(uri)); | 294 var client = new HttpClient(); |
| 295 var connection = client.getUrl(_getUri(uri)); |
295 | 296 |
296 // TODO(nweiz): propagate this error to the return value. See issue 3657. | 297 // TODO(nweiz): propagate this error to the return value. See issue 3657. |
297 connection.onError = (e) { throw e; }; | 298 connection.onError = (e) { throw e; }; |
298 connection.onResponse = (response) { | 299 connection.onResponse = (response) { |
299 if (response.statusCode >= 400) { | 300 if (response.statusCode >= 400) { |
300 // TODO(nweiz): propagate this error to the return value. See issue 3657. | 301 // TODO(nweiz): propagate this error to the return value. See issue 3657. |
301 throw new Exception( | 302 throw new Exception( |
302 "HTTP request for $uri failed with status ${response.statusCode}"); | 303 "HTTP request for $uri failed with status ${response.statusCode}"); |
303 } | 304 } |
304 | 305 |
305 pipeInputToInput(response.inputStream, resultStream); | 306 pipeInputToInput(response.inputStream, resultStream, client.shutdown); |
306 }; | 307 }; |
307 | 308 |
308 return resultStream; | 309 return resultStream; |
309 } | 310 } |
310 | 311 |
311 /** | 312 /** |
312 * Takes all input from [source] and writes it to [sink]. | 313 * Takes all input from [source] and writes it to [sink]. |
313 * | 314 * |
314 * [onClosed] is called when [source] is closed. | 315 * [onClosed] is called when [source] is closed. |
315 */ | 316 */ |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
484 return new Directory(entry); | 485 return new Directory(entry); |
485 } | 486 } |
486 | 487 |
487 /** | 488 /** |
488 * Gets a [Uri] for [uri], which can either already be one, or be a [String]. | 489 * Gets a [Uri] for [uri], which can either already be one, or be a [String]. |
489 */ | 490 */ |
490 Uri _getUri(uri) { | 491 Uri _getUri(uri) { |
491 if (uri is Uri) return uri; | 492 if (uri is Uri) return uri; |
492 return new Uri.fromString(uri); | 493 return new Uri.fromString(uri); |
493 } | 494 } |
OLD | NEW |