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

如何修复mockserver上的SocketTimout异常

国仰岳
2023-03-14

我想使用mockserver来模拟请求和响应。为此,我使用MockServerdocker映像。下面是docker-compose文件示例,其中使用mockserver

mockServer:
  image: mockserver/mockserver
  container_name: mockhttpserver
  ports:
    - 1080:1080

现在为了增加期望。我使用以下mockserver java客户端。

<dependency>
  <groupId>org.mock-server</groupId>
  <artifactId>mockserver-client-java</artifactId>
  <version>5.11.2</version>
</dependency>
MockServerClient client = new MockServerClient("mylocalhost.org", 1080);
        client.upsert(
                Expectation.when(HttpRequest.request("/login")
                .withMethod("get"))
                .thenRespond(HttpResponse.response().withStatusCode(200)));
        client.close();
8:11:18.768 [MockServer-MockServerClient-eventLoop0] DEBUG io.netty.util.Recycler - -Dio.netty.recycler.linkCapacity: 16
08:11:18.768 [MockServer-MockServerClient-eventLoop0] DEBUG io.netty.util.Recycler - -Dio.netty.recycler.ratio: 8
Exception in thread "main" org.mockserver.client.SocketCommunicationException: Response was not received from MockServer after 20000 milliseconds, to wait longer please use "mockserver.maxSocketTimeout" system property or ConfigurationProperties.maxSocketTimeout(long milliseconds)
    at org.mockserver.client.NettyHttpClient.sendRequest(NettyHttpClient.java:172)
    at org.mockserver.client.MockServerClient.sendRequest(MockServerClient.java:211)
    at org.mockserver.client.MockServerClient.sendRequest(MockServerClient.java:244)
    at org.mockserver.client.MockServerClient.upsert(MockServerClient.java:1109)

但是当我调用rest api添加期望时,它就起作用了。

Curl-V-X将“http://mylocalhost.org:1080/mockserver/expected”

共有1个答案

子车芷阳
2023-03-14

现在起作用了。下面是模拟请求和响应的正确样式。

new MockServerClient("mylocalhost.org, 1080)
        .when(
                HttpRequest.request()
                .withMethod("GET")
                .withPath("/view/cart")
        )
        .respond(
                HttpResponse.response()
                .withBody("some_response_body")
        );
 类似资料:
  • 问题内容: 我正在尝试将XML发送到服务器并取回XML。有什么办法可以解决/忽略此异常吗? 我知道状态行为空,这会引发此错误。 问题答案: 尝试看看您的服务器实际上返回了什么!它可能不是有效的HTTP响应。您可以使用以下方式将原始的http请求发送到服务器: 响应应类似于:

  • 嗨,我正在尝试建立一个从visual Studio2019/VB.NET到phpmyadmin的连接,我试着按照YouTube的教程学习,但当我尝试连接时,我一直遇到这个错误,我甚至尝试了mysql.data的其他验证。

  • 我正试着数字符串中元音的数目。问题是它编译正确,但当我运行它时,命令窗口显示“countvowels.main(countvowels.java:25)处线程'main'java.lang.NullPointerException”。 是什么导致了这一点,我该如何修复它,我该如何防止它在未来再次发生? 第25行是我的if语句:

  • 我使用的是Selenium3.9.0+Geckodriver0.24+Firefox58.0.2。 当webdriver想要在我的目标站点上单击导航树中的元素时->script crashing with selenium异常:“selenium.Common.Exceptions.ElementClickInterceptedException:Message:element is not cl

  • MockServer 是一个 API ,建华了通过 HTTP 集成(服务、web网站等)的系统的模拟测试。提供 Java 和 JavaScript API。 可匹配的请求内容: path (regex or plain text) body (regex or plain text) headers cookies query parameters (GET) body parameters (P

  • 问题内容: 我试图在运行时在代码中同时传递列名和要检查的值。但是我得到了: “无效的列名” 例外。代码如下: 问题答案: 您在这里错过了单引号,应该是。但是,您应始终使用参数化查询来避免SQL注入并摆脱此类错误。 尽管直接指定类型和使用属性比: 我们可以停止使用AddWithValue()吗?