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

Unified Diff: runtime/bin/builtin.dart

Issue 16305011: Fix HTTP response handling (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | runtime/bin/dartutils.cc » ('j') | runtime/bin/dartutils.cc » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/bin/builtin.dart
diff --git a/runtime/bin/builtin.dart b/runtime/bin/builtin.dart
index 73736c682f6941b86092847351321e7532f2ce92..66f61987080b3eea9535b461d13e67f9ad025c18 100644
--- a/runtime/bin/builtin.dart
+++ b/runtime/bin/builtin.dart
@@ -7,12 +7,16 @@ import 'dart:io';
int _httpRequestResponseCode = 0;
String _httpRequestStatusString;
-List<int> _httpRequestResponse;
+var _httpRequestResponse;
-void _requestCompleted(HttpClientResponse response, List<int> responseData) {
- _httpRequestResponseCode = response.statusCode;
- _httpRequestStatusString = '${response.statusCode} ${response.reasonPhrase}';
- _httpRequestResponse = responseData;
+void _requestCompleted(HttpClientResponseBody body) {
+ _httpRequestResponseCode = body.statusCode;
+ _httpRequestStatusString = '${body.statusCode} ${body.reasonPhrase}';
+ _httpRequestResponse = null;
+ if (body.statusCode != 200 || body.type == "json") {
+ return;
+ }
+ _httpRequestResponse = body.body;
}
void _requestFailed(error) {
@@ -26,18 +30,15 @@ void _makeHttpRequest(String uri) {
_httpRequestResponseCode = 0;
_httpRequestStatusString = null;
_httpRequestResponse = null;
-
Uri requestUri = Uri.parse(uri);
-
- _client.getUrl(requestUri).then((HttpClientRequest request) {
- return request.close();
- }).then((HttpClientResponse response) {
- response.listen((List<int> responseData) {
- _requestCompleted(response, responseData);
- });
- }).catchError((error) {
- _requestFailed(error);
- });
+ _client.getUrl(requestUri)
+ .then((HttpClientRequest request) => request.close())
+ .then(HttpBodyHandler.processResponse)
+ .then((HttpClientResponseBody body) {
+ _requestCompleted(body);
+ }).catchError((error) {
+ _requestFailed(error);
+ });
}
// Corelib 'print' implementation.
« no previous file with comments | « no previous file | runtime/bin/dartutils.cc » ('j') | runtime/bin/dartutils.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698