| OLD | NEW |
| 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 part of http_server; | 5 library http_server.http_body; |
| 6 | 6 |
| 7 import 'dart:async'; |
| 8 import 'dart:convert'; |
| 9 import 'dart:io'; |
| 10 |
| 11 import 'http_body_impl.dart'; |
| 7 | 12 |
| 8 /** | 13 /** |
| 9 * [HttpBodyHandler] is a helper class for processing and collecting | 14 * [HttpBodyHandler] is a helper class for processing and collecting |
| 10 * HTTP message data in an easy-to-use [HttpBody] object. The content | 15 * HTTP message data in an easy-to-use [HttpBody] object. The content |
| 11 * body is parsed, depending on the `Content-Type` header field. When | 16 * body is parsed, depending on the `Content-Type` header field. When |
| 12 * the full body is read and parsed the body content is made | 17 * the full body is read and parsed the body content is made |
| 13 * available. The class can be used to process both server requests | 18 * available. The class can be used to process both server requests |
| 14 * and client responses. | 19 * and client responses. |
| 15 * | 20 * |
| 16 * The following content types are recognized: | 21 * The following content types are recognized: |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 97 /** | 102 /** |
| 98 * Create a new [HttpBodyHandler] to be used with a [Stream]<[HttpRequest]>, | 103 * Create a new [HttpBodyHandler] to be used with a [Stream]<[HttpRequest]>, |
| 99 * e.g. a [HttpServer]. | 104 * e.g. a [HttpServer]. |
| 100 * | 105 * |
| 101 * If the page is served using different encoding than UTF-8, set | 106 * If the page is served using different encoding than UTF-8, set |
| 102 * [defaultEncoding] accordingly. This is required for parsing | 107 * [defaultEncoding] accordingly. This is required for parsing |
| 103 * `multipart/form-data` content correctly. See the class comment | 108 * `multipart/form-data` content correctly. See the class comment |
| 104 * for more information on `multipart/form-data`. | 109 * for more information on `multipart/form-data`. |
| 105 */ | 110 */ |
| 106 HttpBodyHandler({Encoding defaultEncoding: UTF8}) | 111 HttpBodyHandler({Encoding defaultEncoding: UTF8}) |
| 107 : _transformer = new _HttpBodyHandlerTransformer(defaultEncoding); | 112 : _transformer = new HttpBodyHandlerTransformer(defaultEncoding); |
| 108 | 113 |
| 109 /** | 114 /** |
| 110 * Process and parse an incoming [HttpRequest]. The returned [HttpRequestBody] | 115 * Process and parse an incoming [HttpRequest]. The returned [HttpRequestBody] |
| 111 * contains a [response] field for accessing the [HttpResponse]. | 116 * contains a [response] field for accessing the [HttpResponse]. |
| 112 * | 117 * |
| 113 * See [HttpBodyHandler] constructor for more info on [defaultEncoding]. | 118 * See [HttpBodyHandler] constructor for more info on [defaultEncoding]. |
| 114 */ | 119 */ |
| 115 static Future<HttpRequestBody> processRequest( | 120 static Future<HttpRequestBody> processRequest( |
| 116 HttpRequest request, | 121 HttpRequest request, |
| 117 {Encoding defaultEncoding: UTF8}) { | 122 {Encoding defaultEncoding: UTF8}) { |
| 118 return _HttpBodyHandler.processRequest(request, defaultEncoding); | 123 return HttpBodyHandlerImpl.processRequest(request, defaultEncoding); |
| 119 } | 124 } |
| 120 | 125 |
| 121 /** | 126 /** |
| 122 * Process and parse an incoming [HttpClientResponse]. | 127 * Process and parse an incoming [HttpClientResponse]. |
| 123 * | 128 * |
| 124 * See [HttpBodyHandler] constructor for more info on [defaultEncoding]. | 129 * See [HttpBodyHandler] constructor for more info on [defaultEncoding]. |
| 125 */ | 130 */ |
| 126 static Future<HttpClientResponseBody> processResponse( | 131 static Future<HttpClientResponseBody> processResponse( |
| 127 HttpClientResponse response, | 132 HttpClientResponse response, |
| 128 {Encoding defaultEncoding: UTF8}) { | 133 {Encoding defaultEncoding: UTF8}) { |
| 129 return _HttpBodyHandler.processResponse(response, defaultEncoding); | 134 return HttpBodyHandlerImpl.processResponse(response, defaultEncoding); |
| 130 } | 135 } |
| 131 | 136 |
| 132 Stream<HttpRequestBody> bind(Stream<HttpRequest> stream) { | 137 Stream<HttpRequestBody> bind(Stream<HttpRequest> stream) { |
| 133 return _transformer.bind(stream); | 138 return _transformer.bind(stream); |
| 134 } | 139 } |
| 135 } | 140 } |
| 136 | 141 |
| 137 | 142 |
| 138 /** | 143 /** |
| 139 * A HTTP content body produced by [HttpBodyHandler] for either [HttpRequest] | 144 * A HTTP content body produced by [HttpBodyHandler] for either [HttpRequest] |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 197 * The [ContentType] of the uploaded file. For 'text/\*' and | 202 * The [ContentType] of the uploaded file. For 'text/\*' and |
| 198 * 'application/json' the [data] field will a String. | 203 * 'application/json' the [data] field will a String. |
| 199 */ | 204 */ |
| 200 ContentType get contentType; | 205 ContentType get contentType; |
| 201 | 206 |
| 202 /** | 207 /** |
| 203 * The content of the file. Either a [String] or a [List<int>]. | 208 * The content of the file. Either a [String] or a [List<int>]. |
| 204 */ | 209 */ |
| 205 dynamic get content; | 210 dynamic get content; |
| 206 } | 211 } |
| OLD | NEW |