Okhttp模拟服务器在API 28及更高版本的模拟器上不起作用

问题描述 投票:1回答:1

我的模拟服务器调度程序永不到达模拟器上的替代方法运行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);
        }
    }
}
android okhttp mockserver
1个回答
0
投票

[是的,OKHttp3 MockServer在API 28及更高版本上不起作用。我正在使用'com.squareup.okhttp3:mockwebserver:4.0.1',我需要将项目降级到27,才能使其正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.