新手区 restassured respone html 如何转化为 Json 格式

九伐 · 2018年09月04日 · 最后由 梁小平 回复于 2018年09月17日 · 2924 次阅读

请问 restassured post 返回 HTML,断言失败,如何转成 Json 格式输出?

共收到 9 条回复 时间 点赞

你们开发的姿势不对,既然有用的只有 json ,为何不直接 contentType 设为 json ,并且直接返回纯 json ?
对于纯 json ,rest assured 可以自动转换,方便用它提供的断言的

我也遇到过这样的接口。你可以把这个 response 用断言把 json 部分截取出来啊

黑山老妖 回复


具体是如何写法?这样截取不行。

如果改变不了开发,可以用 rest assured 的 filter ,去掉返回值里面的 html 和 body 标签,只保留 json ,这样用例里用到的时候返回值相当于是纯 json 了。

不过极度不推荐这样做。

先看能不能推动开发去改,这神马玩意啊,坑死人

陈恒捷 回复

好的,开发还没回复。

九伐 回复

@chenhengjie123 说的很对。用 fiter 就行了。这个问题是研发返回的 header 不对,真实的内容其实就是 json。你用 fiter 强行修改 header 就可以了。

Response Builder 还不行;实现 filter(requestSpec, responseSpec, ctx)不会😂 😂

试试这个

filters((new Filter() {
@Override
public Response filter(FilterableRequestSpecification requestSpec, FilterableResponseSpecification responseSpec, FilterContext ctx) {
Response response = ctx.next(requestSpec, responseSpec);

String content=new String(response.getBody().asString());
Response Response2 = new ResponseBuilder().clone(response).setContentType(ContentType.JSON).setBody(content).build();
return Response2;
}
})

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册