2

我尝试使用MockWebServer对我的 API 的各种响应。我做了一个简单的例子,只是为了尝试我想做的是一种工作方法。

mockWebServer不是要“模拟”我的 http 连接的端点吗?像一个真正的服务器?每当我尝试拨打电话时,都会收到 UnknownHostException。

我用错了吗?它不应该只是替换服务器的响应吗?(嘲笑它)

编辑:

我在清单中有互联网许可。

我用:

 androidTestImplementation 'com.squareup.okhttp3:mockwebserver:3.9.1'

代码:

 @Test
    public void myTest() throws IOException, InterruptedException {

        String url = "http://some-mock-url.com";

        MockWebServer server = new MockWebServer();
        server.enqueue(new MockResponse().setBody("Something not valid JSON response"));
        server.start();

        server.url(url);

        final CountDownLatch signal = new CountDownLatch(1);

        AndroidNetworking.get(url)
                .addQueryParameter("some_key", "some_value12345")
                .addHeaders("token", "token_1231234")
                .build()
                .getAsJSONObject(new JSONObjectRequestListener() {

                                     @Override
                                     public void onResponse(JSONObject response) {
                                         signal.countDown();
                                         Log.i("Response", "jsonObject: " + response);
                                     }

                                     @Override
                                     public void onError(ANError anError) {
                                         signal.countDown();
                                         Log.i("Response", "error: " + anError.getMessage());
                                     }
                                 }
                );
        signal.await();
    }

日志猫:

com.androidnetworking.error.ANError:java.net.UnknownHostException:无法解析主机“some-mock-url.com”:没有与主机名关联的地址

4

3 回答 3

1

我发现了一个颠倒顺序的例子。

因此,您必须将 Mock 服务器的 url 设置为实际的 URL,而不是设置 Mock 服务器的 URL,例如:

myAPIsURL= mockWebServer.url("/").toString();

并不是

mockWebServer.url(myAPIsURL);

于 2018-02-01T11:26:10.463 回答
0

如果有人遇到相同的问题,MockWebServer则来自相同的依赖项,OKHttp因此他们都需要具有相同的依赖项版本。

于 2020-10-20T01:38:06.100 回答
-1

这对我来说是一个代理问题。我遵循了这个解决方案。我现在没有收到未知主机异常。 https://stackoverflow.com/a/41714851/5856146

于 2019-01-22T11:17:38.967 回答