如何在REST Assured中设置响应内容类型?

时间:2017-11-03 07:12:43

标签: rest-assured

在我们的项目中,我们面临的问题是响应内容类型为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"

1 个答案:

答案 0 :(得分:0)

您可以在response()上使用contentType()设置Response内容,例如

Response res =  given().response().contentType("Your content type");