1

我最近转移到 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() 是行不通的。我见过的所有例子似乎都不适用于我的情况。

关于我在这里做错了什么有什么建议吗?

4

4 回答 4

1

这对我有用:

given().config(RestAssured.config().decoderConfig(DecoderConfig.decoderConfig().noContentDecoders())).get(url)
于 2021-06-07T17:39:21.120 回答
0

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

于 2012-10-11T00:16:44.270 回答
0

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

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

于 2014-07-18T13:50:13.273 回答
0

It works for me:

String responseJson = get("/languages/").asString();
于 2014-01-16T15:15:28.370 回答