| 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 library response; | 5 library response; |
| 6 | 6 |
| 7 import 'dart:async'; |
| 7 import 'dart:io'; | 8 import 'dart:io'; |
| 8 import 'dart:scalarlist'; | 9 import 'dart:scalarlist'; |
| 9 | 10 |
| 10 import 'base_request.dart'; | 11 import 'base_request.dart'; |
| 11 import 'base_response.dart'; | 12 import 'base_response.dart'; |
| 12 import 'streamed_response.dart'; | 13 import 'streamed_response.dart'; |
| 13 import 'utils.dart'; | 14 import 'utils.dart'; |
| 14 | 15 |
| 15 /// An HTTP response where the entire response body is known in advance. | 16 /// An HTTP response where the entire response body is known in advance. |
| 16 class Response extends BaseResponse { | 17 class Response extends BaseResponse { |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 58 bodyBytes.length, | 59 bodyBytes.length, |
| 59 request: request, | 60 request: request, |
| 60 headers: headers, | 61 headers: headers, |
| 61 isRedirect: isRedirect, | 62 isRedirect: isRedirect, |
| 62 persistentConnection: persistentConnection, | 63 persistentConnection: persistentConnection, |
| 63 reasonPhrase: reasonPhrase); | 64 reasonPhrase: reasonPhrase); |
| 64 | 65 |
| 65 /// Creates a new HTTP response by waiting for the full body to become | 66 /// Creates a new HTTP response by waiting for the full body to become |
| 66 /// available from a [StreamedResponse]. | 67 /// available from a [StreamedResponse]. |
| 67 static Future<Response> fromStream(StreamedResponse response) { | 68 static Future<Response> fromStream(StreamedResponse response) { |
| 68 return consumeInputStream(response.stream).transform((body) { | 69 return consumeInputStream(response.stream).then((body) { |
| 69 return new Response.bytes( | 70 return new Response.bytes( |
| 70 body, | 71 body, |
| 71 response.statusCode, | 72 response.statusCode, |
| 72 request: response.request, | 73 request: response.request, |
| 73 headers: response.headers, | 74 headers: response.headers, |
| 74 isRedirect: response.isRedirect, | 75 isRedirect: response.isRedirect, |
| 75 persistentConnection: response.persistentConnection, | 76 persistentConnection: response.persistentConnection, |
| 76 reasonPhrase: response.reasonPhrase); | 77 reasonPhrase: response.reasonPhrase); |
| 77 }); | 78 }); |
| 78 } | 79 } |
| 79 } | 80 } |
| 80 | 81 |
| 81 /// Returns the encoding to use for a response with the given headers. This | 82 /// Returns the encoding to use for a response with the given headers. This |
| 82 /// defaults to [Encoding.ISO_8859_1] if the headers don't specify a charset or | 83 /// defaults to [Encoding.ISO_8859_1] if the headers don't specify a charset or |
| 83 /// if that charset is unknown. | 84 /// if that charset is unknown. |
| 84 Encoding _encodingForHeaders(Map<String, String> headers) => | 85 Encoding _encodingForHeaders(Map<String, String> headers) => |
| 85 encodingForCharset(_contentTypeForHeaders(headers).charset); | 86 encodingForCharset(_contentTypeForHeaders(headers).charset); |
| 86 | 87 |
| 87 /// Returns the [ContentType] object for the given headers. Defaults to | 88 /// Returns the [ContentType] object for the given headers. Defaults to |
| 88 /// `application/octet-stream`. | 89 /// `application/octet-stream`. |
| 89 ContentType _contentTypeForHeaders(Map<String, String> headers) { | 90 ContentType _contentTypeForHeaders(Map<String, String> headers) { |
| 90 var contentType = headers[HttpHeaders.CONTENT_TYPE]; | 91 var contentType = headers[HttpHeaders.CONTENT_TYPE]; |
| 91 if (contentType != null) return new ContentType.fromString(contentType); | 92 if (contentType != null) return new ContentType.fromString(contentType); |
| 92 return new ContentType("application", "octet-stream"); | 93 return new ContentType("application", "octet-stream"); |
| 93 } | 94 } |
| OLD | NEW |