gpt4 book ai didi

java - 模拟服务器简单模拟不在体内使用 XML

转载 作者:行者123 更新时间:2023-11-28 20:54:43 26 4
gpt4 key购买 nike

我有一个模拟服务器使用:http://www.mock-server.com

该服务器对命中它的 POST 有两个不同的规则。这是java代码:

package mockserver.poc;

import static java.util.concurrent.TimeUnit.SECONDS;
import static org.mockserver.model.HttpRequest.request;
import static org.mockserver.model.HttpResponse.response;
import static org.mockserver.model.StringBody.regex;

import org.mockserver.client.server.MockServerClient;
import org.mockserver.mockserver.MockServer;
import org.mockserver.model.Delay;

public class MockServerPoc {

public static void main(String[] args) {
MockServer mockServer = new MockServer(8888);
System.out.println("Running:" + mockServer.isRunning());

MockServerClient mockServerClient = new MockServerClient("10.189.225.196", 8888);

mockServerClient.when(
request()
.withMethod("POST")
.withPath("/something1")
.withBody(regex("SubscriberA"))
)
.respond(
response()
.withBody("<xml>\n something1 ok \n<xml>")
.withDelay(new Delay(SECONDS, 1))
);

mockServerClient.when(
request()
.withMethod("POST")
.withPath("/something1")
.withBody(regex("SubscriberB"))
)
.respond(
response()
.withBody("<xml>\n something2 ok \n<xml>")
.withDelay(new Delay(SECONDS, 1))
);
}
}

该代码的问题在于,使用 SOAPUI,如果我尝试使用以下 XML 访问它:

<?xml version="1.0" encoding="UTF-8"?>
<ns2:Envelope xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/">
<ns2:Body>
<objectclass>SubscriberA</objectclass>
</ns2:Body>
</ns2:Envelope>

我没有得到预期的结果

<xml>\n something1 ok \n<xml>

如果正文只是SubscriberA,它工作正常,但如果它是整个 XML,它就无法正常工作。

我是不是做错了什么?

最佳答案

您可以使用 xpath 而不是 regex 并以类似的方式解决它,示例如下:

mockServer.when(
HttpRequest.request()
.withMethod("POST")
.withPath("/api/subscription")
.withBody(xpath("/import/operator/name['abc']"))
).respond(
response()
.withBody(getXmlResponse())
);

关于java - 模拟服务器简单模拟不在体内使用 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29287255/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com