如何在C# HttpClient中添加Header允许Salesforce插入重复联系人记录
在C# HttpClient中添加Salesforce重复记录允许Header的方法
要通过API绕开Salesforce的重复校验、直接创建新联系人记录,你需要在请求中添加Sforce-Duplicate-Rule-Header头,取值设为allowSave=true。以下是具体实现方式:
全局添加Header(所有请求生效)
如果你的HttpClient实例只用来处理这类需要跳过重复校验的请求,可以直接给实例的默认请求头添加配置:var httpClient = new HttpClient(); // 添加重复规则允许Header httpClient.DefaultRequestHeaders.Add("Sforce-Duplicate-Rule-Header", "allowSave=true"); // 后续构造请求体、发送请求的逻辑不变 var contactPayload = new { FirstName = "张三", LastName = "李四", Email = "zhangsan@example.com" }; var content = new StringContent( System.Text.Json.JsonSerializer.Serialize(contactPayload), System.Text.Encoding.UTF8, "application/json" ); var response = await httpClient.PostAsync("https://your-salesforce-instance/services/data/v59.0/sobjects/Contact/", content); response.EnsureSuccessStatusCode();单个请求添加Header(更灵活)
若只有部分请求需要跳过重复校验,建议针对特定请求单独添加Header,避免影响其他接口调用:var httpClient = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Post, "https://your-salesforce-instance/services/data/v59.0/sobjects/Contact/"); // 仅给当前请求添加重复规则允许Header request.Headers.Add("Sforce-Duplicate-Rule-Header", "allowSave=true"); // 设置请求体 var contactPayload = new { FirstName = "张三", LastName = "李四", Email = "zhangsan@example.com" }; request.Content = new StringContent( System.Text.Json.JsonSerializer.Serialize(contactPayload), System.Text.Encoding.UTF8, "application/json" ); // 发送请求 var response = await httpClient.SendAsync(request); response.EnsureSuccessStatusCode();额外注意
- 确认你的Salesforce账号已开启对应重复规则,且当前API调用账号拥有跳过重复校验的权限
- 若后续需要恢复默认校验逻辑,可移除全局Header:
httpClient.DefaultRequestHeaders.Remove("Sforce-Duplicate-Rule-Header")
内容的提问来源于stack exchange,提问作者Wasif
相关产品推荐
相关产品推荐

