当前位置: 首页 > 知识库问答 >
问题:

使用MockWebServer时超时?

靳祺然
2023-03-14

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

mockWebServer不是要“模拟”我的http连接的endpoint吗?像真正的服务器?每当我试图打电话时,我都会感到莫名其妙的惊讶。

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

E D I T:

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

我使用:

 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:

通用域名格式。androidnetworking。错误错误:java。网UnknownHostException:无法解析主机“some mock url.com”:没有与主机名关联的地址

共有3个答案

蔚桐
2023-03-14

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

帅令雪
2023-03-14

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

段干博明
2023-03-14

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

因此,与设置模拟服务器的URL不同,您必须将模拟服务器的URL设置为实际URL,如下所示:

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

而不是

mockWebServer。网址(myAPIsURL)

 类似资料:
  • 我有一个Java应用程序的问题。此应用程序使用Apache QPid broker(6.0.1)发送消息。 我在两台计算机上运行它:我用来工作的计算机,以及我们在将应用程序提供给客户端之前用于测试应用程序的计算机。 在我的电脑上,没有问题,应用程序发送或接收消息。 问题是我们换了另一台电脑。我安装qpid的方式与我的一样:我提取了。焦油gz,将$QPID\u WORK设置为工作目录,并设置我用于w

  • 问题内容: 是否可以为Alamofire请求添加超时处理程序? 在我的项目中,我以这种方式使用Alamofire: 编辑: 请求失败消息 错误域= NSURLErrorDomain代码= -1001“请求超时。” UserInfo = {NSUnderlyingError = 0x7fc10b937320 {Error Domain = kCFErrorDomainCFNetwork Code =

  • 是否可以为Alamofire请求添加超时处理程序? 在我的项目中,我使用Alamofire的方式如下: 编辑: 请求失败消息 Error Domain=NSURLErrorDomain Code=-1001“请求超时。”UserInfo={NSUnderlyingError=0x7fc10b937320{Error Domain=kCFErrorDomainCFNetwork Code=-1001

  • 问题内容: 免责声明:这是我第一次尝试该模块。 我使用以下方式尝试支持超时功能,以等待一组异步任务的所有结果。这是更大的库的一部分,因此我省略了一些不相关的代码。 请注意,该库已经支持通过ThreadPoolExecutors和ProcessPoolExecutors提交任务和使用超时,因此,我对使用这些代替建议或关于为什么要使用的问题并不真正感兴趣。转到代码… 起初,我不必担心在超时时取消待处理

  • 我使用的是Spring Boot版本2.0.6.RELEASE 我有以下 API 方法 getSearchData方法运行大约需要40秒。30秒后,我的代码超时,日志中显示以下消息: 并返回以下json响应 getSearchData()方法继续执行,并最终在日志中显示为完成。如果我去掉未来返回类型,只返回一个列表,代码就能正常工作。我已经尝试了以下属性,但不幸的是没有成功。 有谁知道我需要做些什

  • UnknownServerException:服务器在处理请求时遇到意外错误。 2020-07-06 09:46:23.521警告18218---[TaskScheduler-1]O.S.K.R.ReplyingKafkatemplate:回复超时:ProducerRecord(Topic=Student,Partition=NULL,headers=RecordHeaders(headers=[