我正在尝试从mockserver返回自定义对象响应。
在客户端,我希望得到的响应是“getchannelsresponse”。
ResponseEntity<A> response = restTemplate.exchange(url, HttpMethod.GET, request, A.class);
以下是模型对象:
public class A{
private String resultCode;
private String errorCode;
private String errorDescription;
private Integer totalResults;
private List<B> b= new ArrayList();
}
我试图模拟响应并将自定义对象响应返回为。
我试过以下代码:
mockServer.when(
request()
.withPath("/[a-z]+/[a-z]+/[0-9]+")
)
.respond(
httpRequest -> {
String method = httpRequest.getMethod().getValue();
String path = httpRequest.getPath().getValue();
Integer id = Integer.valueOf(getIdFromPath(path));
if (method.equals("GET")) {
Channel channel = map.get(id);
A a= getOkGetResponse(Arrays.asList(channel));
if (channel != null) {
return response()
.withBody(
new ObjectMapper()
.writeValueAsString(
channelsResponse
)
)
.withStatusCode(200);
}
private static A getOkGetResponse(List<Channel> channels) {
A getResponse = new A();
getResponse.setResultCode(HttpStatus.OK.name());
getResponse.setTotalResults(channels.size());
getResponse.setChannels(channels);
return getResponse;
}
但mockserver似乎只返回httpresponse,而不返回定制对象作为响应。在上面的代码中,它返回httpresponse并在body中传递a对象。
但在客户端,如上所示,我希望作为一个。
请提出一些实现它的建议
1条答案
按热度按时间nnsrf1az1#
加载项返回响应为withcontenttype为mediatype.application\u json