【问题标题】:How can i make MERGE call in java using HttpURLConnection or HttpClient library?如何使用 HttpURLConnection 或 HttpClient 库在 java 中进行 MERGE 调用?
【发布时间】:2013-01-17 05:58:52
【问题描述】:

我正在为我的 Web 应用程序使用第三方的 Web 服务。 为了更新他们提供 MERGE 方法的实体(他们用于新实体的 POST 方法(它需要所有字段))所以我搜索了这个方法是否有任何示例提供但没有成功。 有人可以告诉我如何实现这一目标。 有人也可以告诉我如何使用 PATCH 方法吗??

提前致谢。

【问题讨论】:

    标签: java jakarta-ee httpurlconnection apache-httpclient-4.x


    【解决方案1】:

    HttpURLConnection.setRequestMethod 不支持 MERGEPATCH 方法。

    这是documentationHttpURLConnection.setRequestMethod

    设置 URL 请求的方法,其中之一:GET POST HEAD OPTIONS PUT DELETE TRACE 是合法的,受协议限制。默认方法是 GET。

    您的第三方 Web 服务是 OData 服务吗? MERGE 方法是为 OData 发明的,在官方 HTTP 协议中不存在。这是来自微软(OData 的发明者)的relevant documentation

    本节的其余部分定义了在 OData 1.0 和 OData 2.0 协议中使用的自定义 HTTP MERGE 方法,以指定将通过使用合并语义来完成更新... MERGE 或 PATCH 和 PUT 是客户端意图...由于 MERGE 不是 HTTP 规范 [RFC2616] 中定义的动词之一,因此使用 MERGE 动词可能不会像 HTTP 中定义的方法那样无缝地流经网络中介规范...

    作为一种解决方案,我建议将您的有效负载发送到OData batch request。这是一个特殊的 POST 请求,其有效负载可以包含多个 HTTP 请求。您可以在 batch 负载中指定您的 MERGEPATCH 请求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-15
      • 2014-04-10
      • 1970-01-01
      相关资源
      最近更新 更多