首页 > 解决方案 > 使用文件向 Common Data Service 发出 PATCH 方法请求

问题描述

我正在尝试创建一个 Python 脚本,它可以使用 PATCH 方法将文件上传到 MS 的公共数据服务中。我成功地使用简单数据进行了 GET、POST、PATCH 和 DELETE 调用,但到目前为止还无法对其进行配置,以便我可以上传文件。

我一直在使用Python 的 Requests 库requests.patch函数来尝试更新数据。我正在尝试将 .csv 文件上传到该字段中,我正在上传的文件的文件大小为 1kb。

如果我通过内置的数据接口直接将数据上传到公共数据服务中,我的浏览器能够正确地进行 PATCH 调用。我试图尽可能地复制调用,但成功率为零。

公共数据服务中的文件字段

公共数据服务中的文件字段

网络浏览器中的 PATCH 调用

网络浏览器中的 PATCH 调用

使用文件向 Microsoft 的通用数据服务发出 PATCH 请求的正确方法是什么?

标签: python-3.xazureazure-devopsazure-functionscommon-data-service

解决方案


我的请求中的网址出错 - 我错过了将数据上传到的字段

Incorrect URL: 
https://90g9j3gf.crm4.dynamics.com/api/data/v9.0/test_entity(34cd854c-1175-4778-bf95-e1ce12dea3b0)

Corrected URL: 
https://90g9j3gf.crm4.dynamics.com/api/data/v9.0/test_entity(34cd854c-1175-4778-bf95-e1ce12dea3b0)/test_field

我用来发出请求的代码:

Import requests

http_headers = {
  'Authorization': 'Bearer ' + token['access_token'],
  'Content-Type': 'application/octet-stream',
  'x-ms-file-name': 'test.csv'
}
filedata = open("project-folder\\test.csv", "rb")
patch_req = requests.patch(
  url, # My URL is defined elsewhere
  headers=http_headers,
  data=filedata
)

这现在对我来说可以正常工作


推荐阅读