簡體   English   中英

通過HttpClient(C#) Post方法向SalesForce發送數據,不工作

[英]Sending Data to SalesForce by HttpClient(C#) Post Method, Not Working

我正在嘗試使用 HttpClient 將 json Object 發送到 SalesFroce,但這行為很奇怪......

首先我通過以下代碼登錄到 Salesforce

var sendPaylod = new Dictionary<string, string>
{
{"grant_type","password"},
{"client_id",s_clientId},
{"client_secret",s_clientSecrate},
{"username",s_username},
{"password",s_password}
};

HttpClient auth = new HttpClient();
HttpContent content = new FormUrlEncodedContent(sendPaylod);
HttpResponseMessage response = await auth.PostAsync(s_tokenRequestEndpointUrl, content);
string msg = await response.Content.ReadAsStringAsync();
Console.WriteLine(msg);
string authToken = (String)jsonObj["access_token"];

現在我有authToken作為不記名令牌將數據發送到 salesFroce

我正在通過以下方式做到這一點

var obj = new { Director = "003e000001MQYjB", 
                CityName = "XXAA", 
                CityId = "000000",  
                RegionName = "India", 
                RegionId = "00000" };
 
string c_url = "URL to which data will sent";
var c_Obj = JsonConvert.SerializeObject(obj);
var c_content = new System.Net.Http.StringContent(c_Obj, Encoding.UTF8, "application/json");

HttpClient c_client = new HttpClient();
c_client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Authorization","Bearer "+authToken);

HttpContent c_content = new StringContent(c_Obj, Encoding.UTF8, "application/json");
c_content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
var c_response = await c_client.PostAsync(c_url, content);
var c_msg = await c_response.Content.ReadAsStringAsync();


現在我得到以下回應......

"status": "success",
"recordId": "",
"message": ""

如果我在 Postman 中使用相同的承載令牌並發送相同的 Json Object 我收到以下響應。

"status": "success",
"recordId": "a16e0000002qV6aE",
"message": ""

請幫助解決這個問題。

修復下一個錯誤:

改變:

var c_response = await c_client.PostAsync(c_url, content); 

至:

var contentType = new MediaTypeWithQualityHeaderValue("application/json");
c_client.DefaultRequestHeaders.Accept.Add(contentType);
var c_response = await c_client.PostAsync(c_url, c_content); 
var c_msg = await c_response.Content.ReadAsStringAsync();
var result =JsonConvert.DeserializeObject<your return class>(c_msg);

並將您的授權更改為:

 c_client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authToken ); 

暫無
暫無

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

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