我想使用Contact
使用firstname
/ PATCH
来更新PUT
实体的HttpClient
字段。
我使用PATCH
和联系人的GUID
尝试了此操作。但如果我尝试使用以下网址:
基本URL /触点(myorg_contactnumber = '113')
基本URL /联系人( '113')
基本URL /触点(myorg_contactnumber = “113”)
但是它会抛出Bad Request
错误。
答案 0 :(得分:0)
没有看到你的代码,就像贾丁所说的那样 - 可能唯一的错过可能是Alternate key setup。
像这样的PATCH请求的好处是,默认情况下它将更新记录(如果存在),或者它将创建记录如果它没有'存在。
url: /api/data/v8.2/contacts(new_alternatekey='12345')
method: PATCH
body: {
"name": "Alternate key contact updated"
}
您也标记了C#,因此请尝试使用this:
JObject contact1Add = new JObject();
contact1Add.Add("firstname", "Jack");
HttpRequestMessage updateRequest1 = new HttpRequestMessage(
new HttpMethod("PATCH"), contact1Uri);
updateRequest1.Content = new StringContent(contact1Add.ToString(),
Encoding.UTF8, "application/json");
HttpResponseMessage updateResponse1 =
await httpClient.SendAsync(updateRequest1);
if (updateResponse1.StatusCode == HttpStatusCode.NoContent) //204
{
Console.WriteLine("Contact '{0} {1}' updated with " +
"firstname", contact1.GetValue("firstname"),
contact1.GetValue("lastname"));
}
else
{
Console.WriteLine("Failed to update contact for reason: {0}",
updateResponse1.ReasonPhrase);
throw new CrmHttpResponseException(updateResponse1.Content);
}