【问题标题】:Delete data from D365 in Batch Request, getting the error 'Content-Type' Header is missing从 Batch Request 中的 D365 中删除数据,得到错误 'Content-Type' Header is missing
【发布时间】:2019-05-07 18:02:43
【问题描述】:

我正在尝试创建一个 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();

但我不断收到异常: 缺少“内容类型”标头。必须为批处理消息的每个 MIME 部分指定 'Content-Type' 标头。","ExceptionMessage":"缺少 'Content-Type' 标头。必须为批处理消息的每个 MIME 部分指定 'Content-Type' 标头。"

【问题讨论】:

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


    【解决方案1】:

    你有什么理由使用 WebApi 吗?您可以使用 SDK 和 IOrganizationService 处理一切。这将使您的生活变得非常轻松

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

    【讨论】:

    • 我们在集成中使用 WebAPI。是的 SDK 选项可用,但此请求明确使用 Dynamics WebAPI
    猜你喜欢
    • 1970-01-01
    • 2011-01-22
    • 1970-01-01
    • 2022-12-19
    • 1970-01-01
    • 2012-09-29
    • 1970-01-01
    • 2020-03-14
    相关资源
    最近更新 更多