首页 > 解决方案 > mockwebserver 不拦截 openConnection

问题描述

也许我做错了,但出于公司原因,我没有使用库来对服务器进行简单的 POST。所以现在我基本上是这样做的:

fun post(payload: String, url: String) {
with(URL(url).openConnection() as HttpURLConnection) {
    requestMethod = "POST"

    doOutput = true
    val wr = OutputStreamWriter(getOutputStream())
    wr.write(data)
    wr.flush()
}
}

然后当我尝试测试它时,我尝试了各种形式的

    @get:Rule
    var mockWebServer: MockWebServer = MockWebServer()

fun testPost() {
mockWebServer.enqueue(MockResponse()
                .setResponseCode(200))

        val url = "https://someinvaliddomain.com/person"
        mockWebServer.url("https://someinvaliddomain.com/person") // i've also just tried "/"

        api.post("hello", url)
}

但似乎我没有正确设置某些东西,因为我得到的异常是“java.net.UnknownHostException”。我在这里有什么明显的遗漏吗?

标签: android

解决方案


看到您的代码,似乎需要更多信息。确保您的 API 请求正常工作。做一些更正

mockWebServer.url("/")

但另一方面,您正试图联系/人,所以它应该是

mockWebServer.url("/person")

如需完整参考,请查看https://github.com/square/okhttp/tree/master/mockwebserver

它为 MockWebServer 提供了一个很好的概述


推荐阅读