当前位置: 首页 > 知识库问答 >
问题:

是否可以使用Resteasy发布Byte[]来调用rest API?

罗绪
2023-03-14

我正在使用Java EE7、wildfly11、Resteasy-JAXRS-3.0.24(捆绑在wildfly11中)

我已经通过post json或xml格式成功地调用了rest api。

private byte[] request(String address, String api, byte[] request, String token) {

        WebTarget resource = ResteasyClient.getClient().target(address);
        Response response = null;
        byte[] entity = null;
        try {
            WebTarget myResource = resource.path(api);
            response = myResource.request(StaticStringUtil.RESPONSE_TYPE)
                    .header(HttpHeaders.AUTHORIZATION, "Bearer " + token)
                    .async()
                    .post(Entity.json(request)).get();
                    //.post(Entity.entity(request, "application/octet-stream")).get(); // comment 1
                    //.post(Entity.entity(request, "*/*").get(); // comment 2

            entity = response.readEntity(request.getClass());
        } catch (Exception e) {
            e.printStackTrace();
        }

        return entity;
    }

我使用注释1并获得

此错误显示在客户端。

我使用comment 2并获得

此错误显示在服务器端。它意味着resteasyclient向服务器发送字节[]。但调用服务时会发生问题。我在AbstractJAXBProvider.java上设置了一个断点,找到是.getByteStream().read(),值是123,在ASCII中是{。我发送了Byte[],它是一个json字符串。但是服务器使用jaxb解组它?我如何更改提供程序?

共有1个答案

燕航
2023-03-14

您可以使用我的rest客户端和修改方法在头和请求有效载荷中传递您的授权,请参见删除方法定义查看如何传递授权。https://github.com/gajeralalji/java-rest-client/wiki

 类似资料:
  • 我正在开发一个使用JBoss RESTEasy(RESTEasy-jaxrs-3.0.8)的Web应用程序,但我想禁用RoleBasedSecurityFilter。java,只使用我自己的自定义类(它也实现,就像类一样,它们都是安全过滤器)。 这样做的原因是RoleBasedSecurityFilter.java的第43行调用了一个isUserInRole()方法,该方法在我的应用程序中总是返回

  • 问题内容: 我正在浏览Selenium WebDriver的文档,例如它可以驱动Chrome。我当时在想,“驱动” PhantomJS效率会更高吗? 有没有办法将Selenium与PhantomJS一起使用? 我的预期用途是进行网页抓取:我抓取的网站上加载了AJAX和许多可爱的JavaScript,并且我认为此设置可以很好地替代我目前使用的Scrapy Python框架。 问题答案: Phanto

  • 问题内容: 我正在尝试通过HTML执行以下操作: 基本上用户按下登录按钮,就会调用onLogin方法,该方法会将帖子发送到我的API。帖子工作正常,我确实在.then()承诺中得到了答复。 但是,尝试执行类似的操作并不会以我期望用户登录时HTML会执行的操作来更新DOM。 当我在promise中收到响应并且找不到“ vm”实例时,可能是我处于某种后台线程(对不起,这里是移动开发人员)? 谢谢 问题

  • 问题内容: 是否可以从Java调用COM API(特别是HP / Mercury Quality Center OTA API)?如果是这样,最好的方法是什么? 像JACOB一样合适吗? 代码片段对于基础知识会有所帮助:-) 问题答案: jacob:是的,http://sourceforge.net/projects/jacob- project/ 是一个活跃的项目,可以很好地满足您的目的。 您可

  • 假设我们需要信任一个自签名的SSL证书,作为示例,让我们使用https://self-signed.badssl.com/. 由于签名者不是“适当的”权限,Java不信任它,拒绝连接到该服务器。然而,在 并重新启动应用程序,下面的代码工作: 并返回200(OK),没有引发异常。也就是说,打开HTTPS连接的基本Java方式现在可以工作了,因为证书现在是受信任的。 然而,这并没有对javax.ws.

  • 问题内容: 我想平稳地向下滚动。我不想为此写函数-特别是如果jQuery已经有一个函数。 问题答案: 您可以只使用该属性,如下所示: