diff --git a/packages/flutter/lib/src/services/fetch.dart b/packages/flutter/lib/src/services/fetch.dart index 7a9253628d..047241bf07 100644 --- a/packages/flutter/lib/src/services/fetch.dart +++ b/packages/flutter/lib/src/services/fetch.dart @@ -36,24 +36,25 @@ class Response { } Future fetch(UrlRequest request) async { + UrlLoaderProxy loader = new UrlLoaderProxy.unbound(); try { - UrlLoaderProxy loader = new UrlLoaderProxy.unbound(); _networkService.ptr.createUrlLoader(loader); UrlResponse response = (await loader.ptr.start(request)).response; - loader.close(); return response; } catch (e) { print("NetworkService unavailable $e"); return new UrlResponse()..statusCode = 500; + } finally { + loader.close(); } } -Future fetchUrl(String relativeUrl) async { +Future fetchUrl(String relativeUrl) { String url = Uri.base.resolve(relativeUrl).toString(); UrlRequest request = new UrlRequest() ..url = url ..autoFollowRedirects = true; - return await fetch(request); + return fetch(request); } Future fetchBody(String relativeUrl) async {