【发布时间】:2018-07-10 15:19:58
【问题描述】:
我尝试将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();
}
Logcat:
com.androidnetworking.error.ANError: java.net.UnknownHostException: 无法解析主机“some-mock-url.com”:没有关联的地址 主机名
【问题讨论】:
-
检查您的互联网连接权限。
-
@Shailesh 我有互联网权限。
-
勾选这个因为我无法在浏览器中打开你的网址stackoverflow.com/questions/19951466/…
-
@Shailesh 该网址是假的。没有这样的真实地址。这不是模拟服务器的目的吗?使用“假”端点?
标签: android mockwebserver