Atu*_*mar 7 rest jersey-client jersey-2.0
我想通过Jersy客户端调用一些"升级"REST API,它被声明为PUT并且不需要任何正文内容.
但是,当我请求此API时,如下所示:
webTarget.request().put(Entity.json(null));
Run Code Online (Sandbox Code Playgroud)
它给出了如下错误:
Entity must not be null for http method PUT.
Run Code Online (Sandbox Code Playgroud)
所以需要知道,在jersy客户端中是否有任何方法可以使用null Entity调用PUT方法.
Pau*_*tha 12
您可以配置客户端属性
SUPPRESS_HTTP_COMPLIANCE_VALIDATION默认情况下,Jersey客户端运行时执行某些HTTP合规性检查(例如哪些HTTP方法可以促进非空请求实体等),以便在用户尝试建立不符合HTTP规范的通信时快速失败.需要覆盖这些合规性检查并避免Jersey客户端运行时出于某种原因抛出异常的用户可以将此属性设置为true.因此,合规性问题将仅在日志中报告,并且不会抛出异常.
[...]
Client client = ClientBuilder.newClient();
client.property(ClientProperties.SUPPRESS_HTTP_COMPLIANCE_VALIDATION, true);
WebTarget target = client.target("...");
Response response = target.request().put(Entity.json(null));
Run Code Online (Sandbox Code Playgroud)
我遇到了同样的错误,并使用一个空文本实体解决了它:
Entity<?> empty = Entity.text("");
webTarget.request().put(empty);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8907 次 |
| 最近记录: |