这是我的隔离代码
fun getMockServerUrl(): String {
val server = MockWebServer()
server.dispatcher = object : Dispatcher() {
override fun dispatch(request: RecordedRequest): MockResponse {
println("dispatch hit 🚀")
TODO()
}
}
server.start()
val url = server.url(path = "")
val api = Retrofit.Builder()
.baseUrl(url)
...
.create(MyApi::class.java)
Thread {
api.getData().enqueue(
object : Callback<String> {
override fun onResponse(call: Call<String>, response: Response<String>) {
println("Response is ${response.body()}")
}
},
)
}.start()
return url.toString().also {
println("URL is $it")
}
}
发生什么事了?
URL is $it
使用正确的 localhost
基本 URL 进行调用,并且能够从外部浏览器访问 localhost
。这意味着服务器已启动并正在运行Response is null
正在打印,这有点令人期待设备已打开代理 (Charles)。关闭它解决了问题。