从批处理请求中的D365删除数据,丢失错误“ Content-Type”标题

时间:2019-05-07 18:02:43

标签: dynamics-crm microsoft-dynamics dynamics-365 batch-delete

我正在尝试创建一个Azure函数,以从Dynamics 365 CE实例中删除一些数据。该计划是使用D365 WebAPI和批处理操作请求来建立的。

当前在创建批处理请求后发送请求时遇到问题。

我一直在参考Microsoft的以下文档: https://docs.microsoft.com/en-us/powerapps/developer/common-data-service/webapi/execute-batch-operations-using-web-api


代码如下:

var batchId = Guid.NewGuid().ToString();
                        log.LogInformation($"Batch Request Id = {batchId}.");
                        HttpRequestMessage deleteBatchRequestMessage = new HttpRequestMessage(HttpMethod.Post, "$batch");
                        deleteBatchRequestMessage.Content = new MultipartContent("mixed", "batch_" + batchId);

HttpClient client = new HttpClient();
                        client.BaseAddress = new Uri(d365Url);
                        // Default Request Headers needed to be added in the HttpClient Object
                        client.DefaultRequestHeaders.Add("OData-MaxVersion", "4.0");
                        client.DefaultRequestHeaders.Add("OData-Version", "4.0");
                        client.DefaultRequestHeaders.Add("Prefer", "odata.include-annotations=\"OData.Community.Display.V1.FormattedValue\"");
                        d365HttpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                        // Set the Authorization header with the Access Token received specifying the Credentials
                        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", d365Token);

                        HttpResponseMessage response = await client.SendAsync(deleteBatchRequestMessage);
                        var ass = await response.Content.ReadAsStringAsync();

但是我不断收到异常: “ Content-Type”标头丢失。必须为批处理消息的每个MIME部分指定'Content-Type'标头。“,” ExceptionMessage“:”“'Content-Type'标头丢失。必须为批处理邮件的每个MIME部分指定“ Content-Type”标头。“

1 个答案:

答案 0 :(得分:0)

使用WebApi是否有任何原因?您可以使用SDK和IOrganizationService处理所有内容。这将使您的生活变得轻松

http://www.threadpunter.com/azure/using-azure-functions-to-call-dynamics-365/