簡體   English   中英

C#使用POST方法將數據發送到API

[英]C# Send data with method POST to API

不知道我做錯了什么,需要用我的 VSTO Outlook 插件中的數據填充數據庫。

jObjectbody.Add( new { mail_from = FromEmailAddress }); mail_from是數據庫中列的名稱, FromEmailAddress是來自我的 Outlook FromEmailAddress的值

如何正確發送到 API https://my.address.com/insertData

RestClient restClient = new RestClient("https://my.address.com/");

JObject jObjectbody = new JObject();
jObjectbody.Add( new { mail_from = FromEmailAddress });

RestRequest restRequest = new RestRequest("insertData", Method.POST);
restRequest.RequestFormat = DataFormat.Json;
restRequest.AddParameter("text/html", jObjectbody, ParameterType.RequestBody);

IRestResponse restResponse = restClient.Execute(restRequest);

錯誤: Could not determine JSON object type for type <>f__AnonymousType0`1[System.String].

如果我在 Postman (POST->Body->raw->JSON) 中嘗試此操作,則數據存儲在數據庫中,除了不要僅使用數據value

{
"mail_from":"email@email.com"
}

感謝任何線索取得成功

您可以使用restRequest.AddJsonBody(jObjectbody); 而不是AddParameter (我相信它會添加一個查詢字符串)。

請參閱RestSharp AddJsonBody文檔。 他們還提到不要使用某種JObject因為它不起作用,因此您可能還需要更新您的類型。

以下可能對您有用:

RestClient restClient = new RestClient("https://my.address.com/");

var body = new { mail_from = "email@me.com" };

RestRequest restRequest = new RestRequest("insertData", Method.POST);
restRequest.AddJsonBody(body);

IRestResponse restResponse = restClient.Execute(restRequest);

// extra points for calling async overload instead
//var asyncResponse = await restClient.ExecuteTaskAsync(restRequest);

暫無
暫無

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

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