3

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

提前致谢。

4

1 回答 1

0

不支持MERGEandPATCH方法。HttpURLConnection.setRequestMethod

这是文档HttpURLConnection.setRequestMethod

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

您的第三方 Web 服务是 OData 服务吗?该MERGE方法是为 OData 发明的,在官方 HTTP 协议中不存在。以下是微软(OData 的发明者)的相关文档:

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

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

于 2019-05-17T19:55:53.050 回答