问题标签 [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 投票
0 回答
117 浏览

httpbuilder-ng - HttpBuilder bg 在失败时失去身体

我正在使用HttpBuilder-NG。出错时,我收到来自服务器的以下响应。

{ "error": "JsonError", "param": { "obj.instructorId": [ { "msg": "Instructor Not Found", "args": [] } ] } }

但是 HttpBuilder 正在失去身体。fromServer 对象将作为....

错误处理的代码是

0 投票
1 回答
161 浏览

httpbuilder-ng - 如何在 HttpBuilder-NG 中配置日志记录以查看来回的内容

我正在探索使用 HttpBuilder-NG 来执行 REST 调用。我的第一次尝试只是给了我一个带有回溯的 groovy.net.http.HttpException。没有其他细节。使用以前的 HttpBuilder,我能够打开日志记录以查看发送和接收的内容。

代码非常简单:

0 投票
1 回答
876 浏览

httpbuilder-ng - 在 HttpBuilder-NG 中添加基本授权请求拦截器的正确方法

我正在尝试将一些旧式 Groovy HttpBuilder 代码转换为 HttpBuilder-NG。我必须以旧方式做的一件事是添加请求拦截器来处理基本授权。这就是我在旧的 HttpBuilder 中的做法

在HttpBuilder-NG中应该怎么做?(是的,我一直在阅读用户指南)。

2017 年 5 月 16 日更新

我问是因为使用 ApacheHttpBuilder 它在日志中得到了这个。

我能够使用带有请求拦截器的旧 HttpBuilder 来处理基本身份验证。

0 投票
0 回答
709 浏览

multipartform-data - httpbuilder-ng multipart/form-data 与大型应用程序/压缩部分

当尝试使用 httpbuilder-ng apache 实现版本 0.16.1 通过 multipart/form-data 上传大型 zip 时,我得到

org.apache.http.ContentTooLongException:内容长度太长:109370 at org.apache.http.entity.mime.MultipartFormEntity.getContent(MultipartFormEntity.java:103) at groovyx.net.http.ApacheEncoders.multipart(ApacheEncoders.java :74)

没关系,因为 zip 相当大,没有理由在缓冲区和 ByteArray[ Input | 输出]流,问题是我如何实际将多部分发送到连接的输出流?我试图自定义编码器,但 ToServer 只公开了一种接受 InputStream 的方法,这对我来说真的不起作用

这是我正在做的一个片段

0 投票
2 回答
1676 浏览

groovy - 基本身份验证 http-builder-ng

基本身份验证不适用于 http-builder-ng - ng 未传递授权请求?

构建.gradle

GetD2LUserBySourcedIdSpec.groovy

http日志:

0 投票
1 回答
379 浏览

post - httpbuilder-ng 尝试发布时没有方法 multipart() 的签名

我几乎完全按照 HttpBuilder-NG 示例中列出的方式实现了这段代码,但它对我不起作用。由于某种原因,它不将多部分识别为一种方法。来自库创建者的示例https://http-builder-ng.github.io/http-builder-ng/asciidoc/html5/#_multipart

0 投票
2 回答
759 浏览

groovy - 如何为 GET 请求转义 URI 中的“/”?

我正在尝试使用 Groovy 编写对我们 GitLab 服务器的 GET 请求的脚本以检索文件。API URI 格式为:

请注意,命名空间和 repo 之间有一个编码的“/”。最终的 URI 需要如下所示才能正常工作:

https://githost/api/v4/projects/mynamespace%2Fmyrepo/files/myfile.json?ref=master

我有以下代码:

但是,%2F 被重新编码为 %252F。我已经尝试了多种方法来尝试创建 URI,以便它不会在命名空间和 repo 之间对 %2F 进行编码,但我无法得到任何工作。它要么重新编码“%”,要么将其解码为文字“/”。

如何使用 Groovy + http-builder-ng 以保留编码的“/”的方式设置 URI?我已经搜索但找不到任何有效的示例。

谢谢!

0 投票
1 回答
110 浏览

groovy - httpbuilder-ng 线程中的 HttpBuilder 是否安全?

我想在我的应用程序中配置一个带有一些标准标头的 HttpBuilder 实例,并允许该实例被多个线程使用。这有什么问题吗?

0 投票
1 回答
636 浏览

httpbuilder-ng - 步骤定义的 HttpBuilder-NG 基本身份验证问题

我在使用 Gradle、Groovy 和 Junit 为 Cucumber 功能步骤定义实现 HttpBuilder-NG 基本身份验证时遇到问题。我已经使用 Behat/PHP 成功地实现了这个步骤定义。我还使用 Postman 验证了测试。

这是 build.gradle 文件

github API /user/repos 路径需要身份验证才能检索用户的存储库信息,但 Get 正在返回未经授权的异常。如果我省略了路径,我会成功,但基本 URL 不需要身份验证。这是 Groovy 代码:

这是我得到的例外(401):

0 投票
1 回答
1232 浏览

rest - 如何使用 HttpBuilder-ng 解析成功或抛出错误

我正在为我的 java 应用程序构建一个 groovy rest 客户端,以用于测试自动化。我最初在 httpBuilder 中编写了服务,但不知道如何解析响应。在非 200 响应中,我得到了一个异常,我可以在消息中捕获并断言。未找到、错误请求等。更新后,我可以解析响应,但每当我收到非 200 响应时,它都会尝试将其解析为我的对象,然后抛出一个无用的“missingProperty”异常。该文档显示了如何使用 , 解析响应response.parser <CONTENT_TYPE>, { config, fs ->...},以及如何使用response.success{fs -> ...}, or对状态代码进行分支response.when(<CODE>){fs -> ...},但不显示如何仅解析成功并使用不同的逻辑来解析失败。我目前的代码如下:

然后我的 spock 测试:

在旧版本下,第一次测试失败,第二次测试通过。在新版本下,第一次测试通过,第二次测试失败。我也从来没有真正看到过这request failed:...条消息。我刚得到一个groovy.lang.MissingPropertyException。当我逐步完成时,我可以看到它试图将not found响应加载为 Car 对象。

奖励:为什么我必须使用显式属性映射而不是像文档中那样的常规转换?

更新 - 为澄清起见,这不是我的实际来源。我遇到了在 WAS 上运行的专有内部 API,我无法完全控制它。我正在编写 API 的业务逻辑,但正在使用我无权访问的 WAS 和专有库对响应进行编组/解组。名称已更改以保护无辜者/我的工作。这些是我自最初发布以来尝试过的解决方法:这会在非 200 响应上正确触发故障块,但解析失败并IO - stream closed出现错误。此外,我在失败块中抛出的任何异常都会包装在 RuntimeException 中,这会阻止我访问信息。我已经尝试按照文档中的建议将它包装在一个传输异常中,但是当我得到它时它仍然是一个 RuntimeException。

这个在 200 个带有条目的响应上正确解析,200 个没有条目的响应仍然抛出缺少属性异常。与前面的 impl 一样,AutomationException 被包装,因此没有用处。

关于奖金,我遵循的指南显示了将json(config, fs)输出隐式转换为 Car 对象。我必须明确设置新对象的道具。没什么大不了的,但这让我想知道我是否错误地配置了其他东西。