diff --git a/lib/shelf_proxy.dart b/lib/shelf_proxy.dart
index 28a806d..04baf41 100644
--- a/lib/shelf_proxy.dart
+++ b/lib/shelf_proxy.dart
@@ -24,6 +24,10 @@
   }
 
   return (Request request) {
+    if (request.method != 'GET') {
+      return new Response(HttpStatus.METHOD_NOT_ALLOWED);
+    }
+
     // TODO: really need to tear down the client when this is done...
     var client = new HttpClient();
 
diff --git a/test/proxy_test.dart b/test/proxy_test.dart
index 4a6b3eb..85be0b9 100644
--- a/test/proxy_test.dart
+++ b/test/proxy_test.dart
@@ -78,7 +78,7 @@
       });
     });
 
-    test('bar', () {
+    test('/bar', () {
       _scheduleServer(_handler);
 
       schedule(() {
@@ -92,7 +92,7 @@
       });
     });
 
-    test('bar/', () {
+    test('/bar/', () {
       _scheduleServer(_handler);
 
       schedule(() {
@@ -105,6 +105,19 @@
         });
       });
     });
+
+    test('only GET is supported', () {
+      _scheduleServer(_handler);
+
+      schedule(() {
+        var url = new Uri.http('localhost:$_serverPort', '');
+        var handler = createProxyHandler(url);
+
+        return makeRequest(handler, '/', method: 'PUT').then((response) {
+          expect(response.statusCode, HttpStatus.METHOD_NOT_ALLOWED);
+        });
+      });
+    });
   });
 }
 
diff --git a/test/test_util.dart b/test/test_util.dart
index eedd672..b4275dc 100644
--- a/test/test_util.dart
+++ b/test/test_util.dart
@@ -14,13 +14,17 @@
 
 /// Makes a simple GET request to [handler] and returns the result.
 Future<Response> makeRequest(Handler handler, String path,
-    {String scriptName, Map<String, String> headers}) {
+    {String scriptName, Map<String, String> headers, String method}) {
   var rootedHandler = _rootHandler(scriptName, handler);
-  return syncFuture(() => rootedHandler(_fromPath(path, headers)));
+  return syncFuture(() =>
+      rootedHandler(_fromPath(path, headers, method: method)));
 }
 
-Request _fromPath(String path, Map<String, String> headers) =>
-    new Request('GET', Uri.parse('http://localhost' + path), headers: headers);
+Request _fromPath(String path, Map<String, String> headers, {String method}) {
+  if (method == null) method = 'GET';
+  return new Request(method, Uri.parse('http://localhost' + path),
+      headers: headers);
+}
 
 Handler _rootHandler(String scriptName, Handler handler) {
   if (scriptName == null || scriptName.isEmpty) {
