Index: sky/sdk/lib/framework/net/fetch.dart |
diff --git a/sky/sdk/lib/framework/net/fetch.dart b/sky/sdk/lib/framework/net/fetch.dart |
index 720ac4cbc62f832179fa05b5f88f8a4499705d9f..5872af30db747d28bde0c8764cf8b7e515c4a2ee 100644 |
--- a/sky/sdk/lib/framework/net/fetch.dart |
+++ b/sky/sdk/lib/framework/net/fetch.dart |
@@ -9,6 +9,7 @@ import 'package:mojo/core.dart' as core; |
import 'package:mojom/mojo/network_service.mojom.dart'; |
import 'package:mojom/mojo/url_loader.mojom.dart'; |
import 'package:mojom/mojo/url_request.mojom.dart'; |
+import 'package:mojom/mojo/url_response.mojom.dart'; |
class Response { |
ByteData body; |
@@ -20,23 +21,30 @@ class Response { |
} |
} |
-Future<Response> fetch(String relativeUrl) async { |
- String url = Uri.base.resolve(relativeUrl).toString(); |
- |
- var net = new NetworkServiceProxy.unbound(); |
+Future<UrlResponse> fetch(UrlRequest request) async { |
+ NetworkServiceProxy net = new NetworkServiceProxy.unbound(); |
shell.requestService("mojo:authenticated_network_service", net); |
- var loader = new UrlLoaderProxy.unbound(); |
+ UrlLoaderProxy loader = new UrlLoaderProxy.unbound(); |
net.ptr.createUrlLoader(loader); |
- var request = new UrlRequest() |
- ..url = url |
- ..autoFollowRedirects = true; |
- var response = (await loader.ptr.start(request)).response; |
+ UrlResponse response = (await loader.ptr.start(request)).response; |
loader.close(); |
net.close(); |
+ return response; |
+} |
+ |
+Future<UrlResponse> fetchUrl(String relativeUrl) async { |
+ String url = Uri.base.resolve(relativeUrl).toString(); |
+ UrlRequest request = new UrlRequest() |
+ ..url = url |
+ ..autoFollowRedirects = true; |
+ return fetch(request); |
+} |
+Future<Response> fetchBody(String relativeUrl) async { |
+ UrlResponse response = await fetchMojo(relativeUrl); |
if (response.body == null) return new Response(null); |
ByteData data = await core.DataPipeDrainer.drainHandle(response.body); |