问题标签 [httpbuilder-ng]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
472 浏览

http - 配置httpbuilder ng的http客户端不遵循302重定向

我尝试使用 Groovy 和http-builder-ng.
要检查每个请求的所有标头,我想关闭自动重定向。这样做http-builderBasicHttpParams,但我认为BasicHttpParams没有工作http-builder-ng
还有其他方法可以关闭自动重定向吗?

0 投票
1 回答
630 浏览

groovy - 试用 HttpBuilder-NG - 替换旧的 HttpBuilder 或 wslite

我正在尝试切换到 HttpBuilder-NG,但遇到了一些困难。我似乎找不到任何使用响应标头甚至响应状态代码的具体示例。旧的 httpbuilder - 具体来说是 RESTClient,这非常简单。另外,我用它来测试。这是我需要翻译成 HttpBuilder-NG 的一个例子

这在 HttpBuilder-NG 中是什么样子的?


你的评论让我走上了正轨。谢谢!我希望通过围绕 HttpBuilder-NG 创建一个包装类来避免重写数千行测试代码,这样它将返回类似于旧的 HttpBuilder/RESTClient 的对象。此外,类似的东西可以帮助那些试图摆脱 wslite 的人。到目前为止,这是我想出的,以防它对其他人有帮助:

0 投票
1 回答
954 浏览

groovy - 在 HTTPBuilder-NG 中获取成功的响应正文

我正在尝试在 Android Studio 项目的 Gradle 脚本中使用 Httpbuilder-NG。该脚本将一些文件上传到 Web 服务器进行验证,服务器以“ok”或未验证文件的名称进行响应。

我在尝试

结果总是:

Success: 200, Text is: [102, 105, 108, 101], Properties are: [class:class [B, length:4]

请注意,它是一个 4 元素数组,而不是文本字符串。无论服务器返回“ok”还是其他内容,数组都保持不变。我认识到我的服务器可能会返回一些非标准的东西,但它在 Postman 中运行良好。

我也试过

结果总是

即正文应该在的空白字符串。

fs.hasBody 返回true

任何帮助,将不胜感激。

0 投票
0 回答
453 浏览

json - 从 httpbuilder-ng 获取原始 json 字符串或客户杰克逊映射器获取请求

我正在将 groovy 脚本从httpbuilder更新为httpbuilder-ng。这些脚本与各种 Web 服务交互以获取消息。我希望最好使用杰克逊将响应解析为对象。但是,我似乎无法像在 httpbuilder 中那样获得原始 json 响应,因为在所有情况下,httpbuilder-ng 都会自动解析为惰性映射。

使用 httpbuilder 的旧实现允许您使用 body.text 方法获取原始 json 字符串,而无需将其解析为惰性映射。然后这可以与 Jackson 中的 ObjectMapper 一起使用来创建我的 POJO。但是,httpbuilder-ng 似乎不支持这一点。

我已经尝试过这里获取原始 json 的方法,但是 body.text 方法在我使用的版本 1.03 中似乎不起作用http://coffeaelectronica.com/blog/2016/httpbuilder-ng-demo。 .html _

我还尝试添加我自己的自定义编码器来覆盖 Groovy 的 JSON 对象的默认创建,但没有任何成功。据说可以在 wiki https://http-builder-ng.github.io/http-builder-ng/asciidoc/html5/中详细说明。如果有人有如何做到这一点的代码片段,将不胜感激!

旧的 httpbuilder 代码:

新的 http-builder-ng 代码:

更新

找到了解决方案。它是使用 FromServer.inputstream.text 方法添加自定义解析器和闭包。

0 投票
2 回答
512 浏览

httpbuilder - 如何从http ng-builder中提取响应为json

在浏览器中点击 URI myresourceUrl 在浏览器中显示 json 内容。

要求:需要使用httpbuilder-ng的get方法调用URI的GET,response的内容为json。

此 json 文件将作为另一个任务的输入是必需的。如何实现这一点。我们是否需要任何解析器来使用 http-builder-ng 将返回的响应作为 json 获取。

预期响应格式:{"name":"Abc","info":{"age":45,"height":"5.5"}}

我们得到的 实际格式:{name:Abc,info:{age:45,height:5.5}}

如何以预期的响应格式获得上述响应。

0 投票
1 回答
563 浏览

spock - 如何在 URL 中使用带有部分路径的 HttpBuilder?

在我的 Grails 应用程序中,我有一个包含部分 URL 路径的配置属性,如下所示: http://apis.mycompany.com/my-api/v1/

我想使用此 URL 调用端点HttpBuilder

request.uri.path擦除现有路径段:

我能够解决这个问题:

...但我无法让 Ersatzraw在我的 Spock 测试中使用:

分配给的 URLraw是:http://localhost:-1/resources/data

这会导致异常:

这是 HttpBuilder 中的错误,还是我做错了?帮助表示赞赏!

更新:

我以为 Ersatz 会在构建时开始,但事实证明我错了。在使用 URL 之前调用start()修复了 -1 端口号:

现在,构建器正在获取一个看似有效的 URL: http://localhost:52180/resources/data

...但是 Ersatz 服务器给出的消息是期望不匹配。

Ersatz 文档表明应该打印出不匹配的请求,但它只打印上面的堆栈跟踪(和 HttpNotFoundException)。

0 投票
0 回答
38 浏览

groovy - 为什么 Groovy 脚本中缺少我的库日志?

我一直在一个大型编译项目中使用 HttpBuilder-NG,并在调试时依赖它的请求和响应日志记录,但是在独立的 Groovy 脚本中使用它只会导致我的类的输出,而不是库的日志。

谁能建议如何从正在使用的 HttpBuilder-NG 库中获取我期望看到的那些日志?

这是我放在一起的快速测试场景:

对于 logback 配置:

执行时的控制台输出: