Fix more strong-mode warnings.

I'm not sure how I missed these the first time.

R=rnystrom@google.com

Review URL: https://codereview.chromium.org//1922883004 .
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e609b67..82ea2c1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.11.3+5
+
+* Fix some lingering strong mode warnings
+
 ## 0.11.3+4
 
 * Fix all strong mode warnings.
diff --git a/lib/http.dart b/lib/http.dart
index 497e447..9ccd77a 100644
--- a/lib/http.dart
+++ b/lib/http.dart
@@ -161,8 +161,11 @@
 Future<Uint8List> readBytes(url, {Map<String, String> headers}) =>
   _withClient((client) => client.readBytes(url, headers: headers));
 
-Future _withClient(Future fn(Client)) {
+Future/*<T>*/ _withClient/*<T>*/(Future/*<T>*/ fn(Client client)) async {
   var client = new Client();
-  var future = fn(client);
-  return future.whenComplete(client.close);
+  try {
+    return await fn(client);
+  } finally {
+    client.close();
+  }
 }
diff --git a/lib/src/multipart_file.dart b/lib/src/multipart_file.dart
index f15b684..3597c6e 100644
--- a/lib/src/multipart_file.dart
+++ b/lib/src/multipart_file.dart
@@ -5,6 +5,7 @@
 import 'dart:async';
 import 'dart:convert';
 
+import 'package:async/async.dart';
 import 'package:http_parser/http_parser.dart';
 import 'package:path/path.dart' as path;
 
@@ -86,16 +87,15 @@
   ///
   /// This can only be used in an environment that supports "dart:io".
   static Future<MultipartFile> fromPath(String field, String filePath,
-      {String filename, MediaType contentType}) {
+      {String filename, MediaType contentType}) async {
     io.assertSupported("MultipartFile.fromPath");
     if (filename == null) filename = path.basename(filePath);
     var file = io.newFile(filePath);
-    return file.length().then((length) {
-      var stream = new ByteStream(file.openRead());
-      return new MultipartFile(field, stream, length,
-          filename: filename,
-          contentType: contentType);
-    });
+    var length = await file.length();
+    var stream = new ByteStream(DelegatingStream.typed(file.openRead()));
+    return new MultipartFile(field, stream, length,
+        filename: filename,
+        contentType: contentType);
   }
 
   // Finalizes the file in preparation for it being sent as part of a
diff --git a/pubspec.yaml b/pubspec.yaml
index 1c59d5e..5e4b2c5 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
 name: http
-version: 0.11.3+4
+version: 0.11.3+5
 author: "Dart Team <misc@dartlang.org>"
 homepage: https://github.com/dart-lang/http
 description: A composable, Future-based API for making HTTP requests.