繁体   English   中英

如何让 Rest Assured 在我的 REST 响应中返回文本(非加密或流式传输)值?

[英]How do I get Rest Assured to return the text (non-encrypted or streamed) value in my REST response?

我最近转向 Java 并尝试针对 netflix REST 服务编写一些 REST 测试。

我有一个问题,因为我使用放心的响应要么想要发送 gzip 编码的响应或“InputStream”,这两者都没有在响应的内容中提供实际的 XML 文本。 我发现了“Accept-Encoding”标头,但将其设为空白似乎并不是解决方案。 使用 .Net 时,我从来没有遇到过这个问题,而且我似乎找不到返回人类可读响应的正确方法。

我的代码:

RestAssured.baseURI = "http://api-public.netflix.com";
RestAssured.port = 80;

Response myResponse = given().header("Accept-Encoding", "").given().auth().oauth(consumerKey, consumerSecret, accessToken, secretToken).param("term", "star wars").get("/catalog/titles/autocomplete");

我的响应对象有一个“内容”值,只有对缓冲区、包装流等的引用。尝试获取响应的 ToString() 不起作用。 我见过的所有例子似乎都不适用于我的情况。

关于我在这里做错的任何建议?

我猜在 Java 领域,一切都作为输入流返回。 使用流阅读器获取了我需要的数据。

这个对我有用:

String responseJson = get("/languages/").asString();

在 1.9.0 版本之前,Rest-assured 一直默认在请求中提供标头“Accept-Encoding:gzip,deflate”而无法更改它。

请参阅https://code.google.com/p/rest-assured/issues/detail?id=154

这对我有用:

given().config(RestAssured.config().decoderConfig(DecoderConfig.decoderConfig().noContentDecoders())).get(url)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM