Java 如何使用修补程序方法发送Salesforce更新的请求?

Java 如何使用修补程序方法发送Salesforce更新的请求?,java,playframework,salesforce,Java,Playframework,Salesforce,我正在使用Play框架构建一个web应用程序,它通过Salesforce的RESTAPI与Salesforce集成。为了向他们的接口发送upsert命令,似乎我必须使用PATCH方法而不是POST方法请求。是否可以使用Play的WSRequest对象并将方法类型更改为PATCH而不是POST?如果不是,我如何使用请求对象并发送补丁请求 出于学习目的,什么是补丁方法?为什么Salesforce强制使用它而不是POST方法?我不确定可用的方法,但从中可以看出,如果您的库不支持补丁,这里有一个解决方法

我正在使用Play框架构建一个web应用程序,它通过Salesforce的RESTAPI与Salesforce集成。为了向他们的接口发送upsert命令,似乎我必须使用PATCH方法而不是POST方法请求。是否可以使用Play的WSRequest对象并将方法类型更改为PATCH而不是POST?如果不是,我如何使用请求对象并发送补丁请求


出于学习目的,什么是补丁方法?为什么Salesforce强制使用它而不是POST方法?

我不确定可用的方法,但从中可以看出,如果您的库不支持补丁,这里有一个解决方法:

如果您使用的HTTP库不允许重写或设置 任意HTTP方法名,可以发送POST请求并提供 通过查询字符串参数重写HTTP方法
\u HttpMethod

例如,要更新帐户,这将与实际的POST请求一起使用:

.../services/data/v23.0/sobjects/Account/0016000000eEhmxAAC?_HttpMethod=PATCH
至于使用补丁背后的原因,这是因为补丁用于对资源进行部分更新。也就是说,您只需发送正在更新的字段。如果需要在更新中发送记录的所有字段,则PUT可能是更好的选择。POST通常仅适用于新插入件。下面是一个示例说明:
Play的WS-library中没有包含补丁方法


您可以在应用程序的框架中手动扩展某些类来添加此方法(主要是),但我相信@ryanbrainard提供的替代方法是一种更好的方法:在POST to标志中使用_HttpMethod参数作为补丁。

不再有效