如何使用Rest Assured从REST响应(json或xml)中提取字段值?

问题描述 投票:0回答:1

我想从字符串类型的REST响应(json或xml)中提取值。我尝试了以下代码:

final Response response = new ResponseBuilder().setContentType("application/json").setStatusCode(200).setBody("{\"message\":\"hello\"}").build();
Object object = response.path("message");
System.out.println(object);

但它是公司

Exception in thread "main" java.lang.NullPointerException: Cannot invoke method getObjectMapperConfig() on null object
    at org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:91)
    at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:48)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
    at org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:35)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
    at io.restassured.internal.RestAssuredResponseOptionsGroovyImpl.jsonPath(RestAssuredResponseOptionsGroovyImpl.groovy:358)

根本原因是RestAssuredResponseOptionsGroovyImpl中的RestAssuredConfig对象为null

那么,如何在没有get()或post()的情况下正确地从原始字符串响应构造Response对象,因为我已经有字符串响应?

rest-assured
1个回答
0
投票

您可以尝试以下方法:

RestAssuredResponseOptionsImpl response = new RestAssuredResponseImpl();
response.setConfig(RestAssuredConfig.config());
response.setRpr(new ResponseParserRegistrar());
response.setContentType("application/json");
response.setStatusCode(200);
response.setContent("{\"message\":\"hello\"}");
Object message = response.path("message");
System.out.println(message);
© www.soinside.com 2019 - 2024. All rights reserved.