void okhttp3.mockwebserver.MockWebServer.enqueue(@NotNull MockResponse response)
は、キューとして応答レスポンスを登録するので返す順番にこれを呼べばよかった。
Dispatcher の方法で、リクエストカウントを判断したい
MockWebServer の getRequestCount() メソッドで、1始まりのカウントを取得できる。
特に高度なテクニックなコードではない。単純に生成する MockWebServer を Dispatcher 内で使うだけ。
MockWebServer server = new MockWebServer(); Dispatcher dispatcher = new Dispatcher() { @Override public MockResponse dispatch(RecordedRequest request) throws InterruptedException { int requestCount = server.getRequestCount(); // TODO リクエスト回数による応答をするようにする → editBody(requestCount) return new MockResponse().addHeader("Content-Type", "application/json; " + "charset=utf-8") .setBody( editBody(requestCount) ).setResponseCode(200); } }; server.setDispatcher(dispatcher);