From eeec4b8db83014a64aba85a13af2ad8b1eb954a7 Mon Sep 17 00:00:00 2001 From: Jake Wharton Date: Tue, 21 Jul 2015 12:19:29 -0400 Subject: [PATCH] Use the same logic for permitting request body as client. --- .../okhttp/mockwebserver/MockWebServer.java | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/mockwebserver/src/main/java/com/squareup/okhttp/mockwebserver/MockWebServer.java b/mockwebserver/src/main/java/com/squareup/okhttp/mockwebserver/MockWebServer.java index afea67857..a18006f82 100644 --- a/mockwebserver/src/main/java/com/squareup/okhttp/mockwebserver/MockWebServer.java +++ b/mockwebserver/src/main/java/com/squareup/okhttp/mockwebserver/MockWebServer.java @@ -30,6 +30,7 @@ import com.squareup.okhttp.internal.framed.FramedConnection; import com.squareup.okhttp.internal.framed.FramedStream; import com.squareup.okhttp.internal.framed.Header; import com.squareup.okhttp.internal.framed.IncomingStreamHandler; +import com.squareup.okhttp.internal.http.HttpMethod; import com.squareup.okhttp.internal.ws.RealWebSocket; import com.squareup.okhttp.internal.ws.WebSocketProtocol; import com.squareup.okhttp.ws.WebSocketListener; @@ -629,19 +630,9 @@ public final class MockWebServer { } } - if (request.startsWith("OPTIONS ") - || request.startsWith("GET ") - || request.startsWith("HEAD ") - || request.startsWith("TRACE ") - || request.startsWith("CONNECT ")) { - if (hasBody) { - throw new IllegalArgumentException("Request must not have a body: " + request); - } - } else if (!request.startsWith("POST ") - && !request.startsWith("PUT ") - && !request.startsWith("PATCH ") - && !request.startsWith("DELETE ")) { // Permitted as spec is ambiguous. - throw new UnsupportedOperationException("Unexpected method: " + request); + String method = request.substring(0, request.indexOf(' ')); + if (hasBody && !HttpMethod.permitsRequestBody(method)) { + throw new IllegalArgumentException("Request must not have a body: " + request); } return new RecordedRequest(request, headers.build(), chunkSizes, requestBody.receivedByteCount,