我的模拟服务器调度程序永不到达模拟器上的替代方法运行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);
}
}
}
[是的,OKHttp3 MockServer在API 28及更高版本上不起作用。我正在使用'com.squareup.okhttp3:mockwebserver:4.0.1',我需要将项目降级到27,才能使其正常工作。