簡體   English   中英

使用 C# 和 Web API 將文件上傳到 CRM

[英]Upload the file to CRM using C# and Web API

我正在嘗試將 PDF 文件上傳到 CRM 實體中的文件字段。 我遵循以下文檔: https://docs.microsoft.com/en-us/powerapps/developer/data-platform/file-attributes#upload-file-data

實現了 OAuth 的代碼,以使用客戶端 ID 和客戶端密碼生成訪問令牌。 但我收到了一個錯誤的請求作為回應。

實體名稱:msnfp_request

文件字段名:bna_file

var fileStream = System.IO.File.OpenRead(<file path>);
var url = new Uri("https://mydev.crm.dynamics.com/api/data/v9.1/msnfp_request(a528f300-7b53-ec11-8c62-0022482a2e7a)/bna_file);

AuthenticationContext authContext = new AuthenticationContext("https://login.microsoftonline.com/<domain>");
ClientCredential credential = new Microsoft.IdentityModel.Clients.ActiveDirectory.ClientCredential(<client id>,<client secret>);
AuthenticationResult result = authContext.AcquireToken("https://mydev.crm.dynamics.com/", credential);
using (var req = new HttpRequestMessage(new HttpMethod("PATCH"), url))
{
  req.Headers.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken);
  req.Content = new StreamContent(fileStream);
  req.Content.Headers.Add("Content-Type", "application/octet-stream");
  req.Content.Headers.Add("x-ms-file-name", "test.pdf");
  HttpClient Client = new HttpClient();
  using (var response = await Client.SendAsync(req))
  {
   response.EnsureSuccessStatusCode();
  }
 }

我在上面的代碼中做錯了什么?

我將進行故障排除,看看您是否能夠逐步找出問題。

  1. 確保通過令牌后身份驗證正常工作,因為您沒有得到 401 應該沒問題。 但是您可以執行一個簡單的 GET 請求來交叉檢查連接是否正常
  2. 復數實體名稱可能是個問題。 您可以找到狀態代碼文本以查看任何內部異常,例如“找不到資源”。 請嘗試如果實體復數名稱是msnfp_requests那么它應該像https://mydev.crm.dynamics.com/api/data/v9.1/msnfp_requests(a528f300-7b53-ec11-8c62-0022482a2e7a)/bna_file (wi猜測:))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM