在我们的项目中,我们面临的问题是响应内容类型为application/json; charset="utf-8"
。在解析响应对象时,我们得到以下错误。
我们如何解决这个问题?
我想我们可以通过将响应内容类型设置为" application / json"来解决此问题。但我没有得到如何做到这一点。我尝试了以下方法,但努力工作。请建议。
RestAssured.responseContentType(ContentType.JSON); ( I think it is a depricated method)
RestAssured.responseSpecification.response()的contentType(ContentType.JSON);
验证响应时我们得到的错误是: java.io.UnsupportedEncodingException:" utf-8"在 java.lang.StringCoding.decode(StringCoding.java:190)at java.lang.String。(String.java:426)at java.lang.String。(String.java:491)at sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 在 org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:77) 在 org.codehaus.groovy.runtime.callsite.ConstructorSite $ ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:102) 在 org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:57) 在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:182) 在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:194) 在 com.jayway.restassured.internal.RestAssuredResponseOptionsGroovyImpl.charsetToString(RestAssuredResponseOptionsGroovyImpl.groovy:482) 在 com.jayway.restassured.internal.RestAssuredResponseOptionsGroovyImpl $ charsetToString $ 3.callCurrent(未知 来源)at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:49) 在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133) 在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141) 在 com.jayway.restassured.internal.RestAssuredResponseOptionsGroovyImpl.asString(RestAssuredResponseOptionsGroovyImpl.groovy:169) 在 com.jayway.restassured.internal.RestAssuredResponseOptionsGroovyImpl.asString(RestAssuredResponseOptionsGroovyImpl.groovy:165) 在 com.jayway.restassured.internal.RestAssuredResponseOptionsImpl.asString(RestAssuredResponseOptionsImpl.java:193)
以下代码
会抛出此错误resp.then().body(path, is(value));
" utf-8"可能导致了这个问题。我不确定。所以我想将响应的内容类型设置为" application / json"而不是application / json;字符集=" UTF-8"
答案 0 :(得分:0)
您可以在response()上使用contentType()设置Response内容,例如
Response res = given().response().contentType("Your content type");