Index: sky/sdk/lib/mojo/net/fetch.dart |
diff --git a/sky/sdk/lib/mojo/net/fetch.dart b/sky/sdk/lib/mojo/net/fetch.dart |
index 834112c01e6565ff857d1b3671da8f59e75a8885..dd3834e66cd0c6c332acb6d163deeec0603f0291 100644 |
--- a/sky/sdk/lib/mojo/net/fetch.dart |
+++ b/sky/sdk/lib/mojo/net/fetch.dart |
@@ -19,22 +19,28 @@ class Response { |
Response(this.body); |
String bodyAsString() { |
+ if (body == null) |
+ return null; |
return new String.fromCharCodes(new Uint8List.view(body.buffer)); |
} |
} |
Future<UrlResponse> fetch(UrlRequest request) async { |
- NetworkServiceProxy net = new NetworkServiceProxy.unbound(); |
- shell.requestService("mojo:authenticated_network_service", net); |
+ try { |
+ NetworkServiceProxy net = new NetworkServiceProxy.unbound(); |
+ shell.requestService("mojo:authenticated_network_service", net); |
- UrlLoaderProxy loader = new UrlLoaderProxy.unbound(); |
- net.ptr.createUrlLoader(loader); |
+ UrlLoaderProxy loader = new UrlLoaderProxy.unbound(); |
+ net.ptr.createUrlLoader(loader); |
- UrlResponse response = (await loader.ptr.start(request)).response; |
+ UrlResponse response = (await loader.ptr.start(request)).response; |
- loader.close(); |
- net.close(); |
- return response; |
+ loader.close(); |
+ net.close(); |
+ return response; |
+ } catch (e) { |
+ return new UrlResponse()..statusCode = 500; |
+ } |
} |
Future<UrlResponse> fetchUrl(String relativeUrl) async { |