request.patch 在 Salesforce API 中出现重复值错误
我参考了这个指南,想要向Salesforce的API发送一个patch请求。
我的Python代码是:
headers = {"Authorization" : "OAuth %s"%str(accessToken), "Content-Type" : "application/json"}
try:
response = requests.patch(url, data, headers=headers)
self.log.info('request.patch response : %s %s'\
% (response.text, response.status_code))
except Exception, e:
self.log.info("Exception %s"%str(e))
我正在更新Salesforce中已经存在的一条记录。但是我遇到了下面的错误:
response.text = [
{
"message":"duplicate value found: mypackageprefix__external_field__c duplicates value on record with id: a1T50000005G9jxyz",
"errorCode":"DUPLICATE_VALUE",
"fields":[]
}
]
response.status_code = 400
这个错误是什么情况下出现的呢?
而且,因为我只是更新现有的记录,理论上我应该只会收到status_code=204
(就像指南里说的那样),但有时候我却收到了status_code=201
。这是为什么呢?
请帮帮我。
1 个回答
0
400:这表示请求有问题。你提供的文档上写着:
注意,如果你的关系类型是主从关系,并且设置为不允许重新归属(也就是不允许改变父子关系),当你尝试更新父级的外部ID时,会出现HTTP状态码400的错误,错误代码为INVALID_FIELD_FOR_INSERT_UPDATE。
201:这表示创建成功。文档上说:
如果成功创建了一个新记录,会返回HTTP状态码201。
204:这表示响应没有内容。文档上说:
如果更新了一个已有的记录,会返回HTTP状态码204。
简单来说:400(有问题) 201(之前不存在,现在创建了) 204(之前存在,现在更新了)