| 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 dart.io; | 5 part of dart.io; |
| 6 | 6 |
| 7 class _HttpBodyHandlerTransformer | 7 class _HttpBodyHandlerTransformer |
| 8 extends StreamEventTransformer<HttpRequest, HttpRequestBody> { | 8 extends StreamEventTransformer<HttpRequest, HttpRequestBody> { |
| 9 void handleData(HttpRequest request, EventSink<HttpRequestBody> sink) { | 9 void handleData(HttpRequest request, EventSink<HttpRequestBody> sink) { |
| 10 HttpBodyHandler.processRequest(request) | 10 HttpBodyHandler.processRequest(request) |
| 11 .then(sink.add, onError: sink.addError); | 11 .then(sink.add, onError: sink.addError); |
| 12 } | 12 } |
| 13 } | 13 } |
| 14 | 14 |
| 15 class _HttpBodyHandler implements HttpBodyHandler { | 15 class _HttpBodyHandler { |
| 16 Stream<HttpRequestBody> bind(Stream<HttpRequest> stream) { | |
| 17 return new _HttpBodyHandlerTransformer().bind(stream); | |
| 18 } | |
| 19 | |
| 20 static Future<HttpRequestBody> processRequest(HttpRequest request) { | 16 static Future<HttpRequestBody> processRequest(HttpRequest request) { |
| 21 return process(request, request.headers) | 17 return process(request, request.headers) |
| 22 .then((body) => new _HttpRequestBody(request, body), | 18 .then((body) => new _HttpRequestBody(request, body), |
| 23 onError: (error) { | 19 onError: (error) { |
| 24 // Try to send BAD_REQUEST response. | 20 // Try to send BAD_REQUEST response. |
| 25 request.response.statusCode = HttpStatus.BAD_REQUEST; | 21 request.response.statusCode = HttpStatus.BAD_REQUEST; |
| 26 request.response.close(); | 22 request.response.close(); |
| 27 request.response.done.catchError((_) {}); | 23 request.response.done.catchError((_) {}); |
| 28 throw error; | 24 throw error; |
| 29 }); | 25 }); |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 103 _HttpRequestBody(HttpRequest request, HttpBody body) | 99 _HttpRequestBody(HttpRequest request, HttpBody body) |
| 104 : super(body.mimeType, body.type, body.body), | 100 : super(body.mimeType, body.type, body.body), |
| 105 method = request.method, | 101 method = request.method, |
| 106 uri = request.uri, | 102 uri = request.uri, |
| 107 headers = request.headers, | 103 headers = request.headers, |
| 108 response = request.response; | 104 response = request.response; |
| 109 } | 105 } |
| 110 | 106 |
| 111 class _HttpClientResponseBody | 107 class _HttpClientResponseBody |
| 112 extends _HttpBody implements HttpClientResponseBody { | 108 extends _HttpBody implements HttpClientResponseBody { |
| 113 final int statusCode; | 109 final HttpClientResponse response; |
| 114 final String reasonPhrase; | |
| 115 final HttpHeaders headers; | |
| 116 | 110 |
| 117 _HttpClientResponseBody(HttpClientResponse response, HttpBody body) | 111 _HttpClientResponseBody(HttpClientResponse response, HttpBody body) |
| 118 : super(body.mimeType, body.type, body.body), | 112 : super(body.mimeType, body.type, body.body), |
| 119 statusCode = response.statusCode, | 113 this.response = response; |
| 120 reasonPhrase = response.reasonPhrase, | 114 |
| 121 headers = response.headers; | 115 int get statusCode => response.statusCode; |
| 116 |
| 117 String get reasonPhrase => response.reasonPhrase; |
| 118 |
| 119 HttpHeaders get headers => response.headers; |
| 122 } | 120 } |
| OLD | NEW |