簡體   English   中英

HTTP 客戶端 PostAsync 返回狀態 500

[英]HTTP Client PostAsync return status 500

我向 API 發送 POST 請求。 這是我的代碼:

                    client.DefaultRequestHeaders.Add("Accept", "application/json");
                    client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);
                    var postData = JsonConvert.SerializeObject(claim);
                    var response = await client.PostAsync($"api/Claims/Save", new StringContent(postData, Encoding.UTF8, "application/json"));

我序列化對象並發送,但在 API 中我的代碼是這樣的:

   [System.Web.Http.HttpPost]
        public IHttpActionResult Save(string user , string description , string data)

如果是 HTTP GET,我知道您在 url 上添加了參數,但我不知道如何使用 HTTP POST。 問題是我無法更改 API 請求。

Claim 對象包含字符串用戶、字符串描述、字符串數據

API 不是我的,我無法修改它。

如果有人遇到同樣的情況:

首先你需要添加 Content-Type: application/x-www-form-urlencoded

其次,您需要根據您的價值觀創建一個字典,例如:

var dictionary = new Dictionary<string, string>();
                    dictionary.Add("values", "Doctor");
                    dictionary.Add("name", "John");
                    dictionary.Add("surname", "Doe");
                    dictionary.Add("Year", "1993");

第三,您需要像這樣對內容進行編碼:

var content = new FormUrlEncodedContent(dictionary);

最后發送請求:

var response = await client.PostAsync($"api/Claims/Save", content);

暫無
暫無

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

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