Не работает симулятор Okhttp на симуляторе API 28 и выше - PullRequest
1 голос
/ 03 октября 2019

Мой диспетчер ложного сервера никогда не достигает метод переопределения на симуляторе работает с API 28 и выше, но он отлично работает в другой версии. Есть идеи, как это вызвать? Или это просто проблема версии API?

Я указываю на localhost: 8080. И версия okhttp 4.2.1.

fun search() {
    sleepSafely(3000)
    mockServer = MockWebServer()
    mockServer.dispatcher = ErrorDispatcher()
    mockServer.start(8080)
    sleepSafely(3000)
    // do the API request
}

public class ErrorDispatcher extends Dispatcher {

    @NotNull
    @Override
    public MockResponse dispatch(RecordedRequest request) {
        // never be triggered
        String path = request.getPath();
        if (path.equalsIgnoreCase("/api/v2/search/person")) {
            return new MockResponse()
                    .setResponseCode(404)
                    .setBody("{"MOCK_KEY": "MOCK_VALUE"}");
        } else if (path.equalsIgnoreCase("/api/v2/search/book")) {
            return new MockResponse()
                    .setResponseCode(404);
        } else {
            return new MockResponse().setResponseCode(404);
        }
    }
}

1 Ответ

0 голосов
/ 07 октября 2019

Вы правы, OKHttp3 MockServer не работает на API 28 и выше. Я использую com.squareup.okhttp3: mockwebserver: 4.0.1, мне нужно было понизить мой проект до 27, чтобы заставить его работать.

...