From e6f42c4263fca67c287aaae6d17d9b2f4a9ed702 Mon Sep 17 00:00:00 2001 From: Lucas Albuquerque Date: Tue, 31 Mar 2015 22:01:45 -0300 Subject: [PATCH] Adding more content and example to Dispatcher --- mockwebserver/README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/mockwebserver/README.md b/mockwebserver/README.md index c72966826..eb698c35b 100644 --- a/mockwebserver/README.md +++ b/mockwebserver/README.md @@ -116,6 +116,26 @@ assertEquals("{}", request.getUtf8Body()); By default MockWebServer uses a queue to specify a series of responses. Use a Dispatcher to handle requests using another policy. One natural policy is to dispatch on the request path. +You can, for example, filter the request instead of using `server.enqueue()`. + +```java +final Dispatcher dispatcher = new Dispatcher() { + + @Override + public MockResponse dispatch(RecordedRequest request) throws InterruptedException { + + if (request.getPath().equals("/v1/login/auth/")){ + return new MockResponse().setResponseCode(200)); + } else if (request.getPath().equals("v1/check/version/")){ + return new MockResponse().setResponseCode(200).setBody("version=9"); + } else if (request.getPath().equals("/v1/profile/info")) { + return new MockResponse().setResponseCode(200).setBody("{\\\"info\\\":{\\\"name\":\"Lucas Albuquerque\",\"age\":\"21\",\"gender\":\"male\"}}"); + } + return new MockResponse().setResponseCode(404); + } +}; +server.setDispatcher(dispatcher); +``` ### Download