[英]Receive data from server using POST method and with a request body using WebClient in C#
我正在嘗試使用 POST 方法從服務器接收數據,並且請求應該有一個正文。 我為此使用 WebClient 並嘗試以字符串形式獲取響應。 我知道我們可以使用 HttpClient 來實現這一點。 但我想為這個特定的實例使用 WebClient。
我瀏覽了這篇文章並嘗試了UploadString
並且響應給了我一個 400 BAD 請求。
using (var wc = new WebClient())
{
wc.Headers.Add("Accept: application/json");
wc.Headers.Add("User-Agent: xxxxxxx");
wc.Headers.Add($"Authorization: Bearer {creds.APIKey.Trim()}");
var jsonString = JsonConvert.SerializeObject(new UserRequestBody
{
group_id = userDetails.data.org_id
});
var response = wc.UploadString("https://api.xxxxx.yyy/v2/users", "POST", jsonString);
}
我使用 Postman 測試了端點(請求 header 具有 api 密鑰和 JSON 中的請求正文),它工作正常。
我知道我沒有正確格式化請求。 有人可以幫幫我嗎。
非常感謝@Santiago Hernández。 問題是使用wc.Headers.Add("Accept: application/json");
在請求 header 中。 將其更改為wc.Headers.Add("Content-Type: application/json");
返回 200 Ok 響應。 代碼修改如下
using (var wc = new WebClient())
{
wc.Headers.Add("Content-Type: application/json");
wc.Headers.Add("User-Agent: xxxxxxx");
wc.Headers.Add($"Authorization: Bearer {creds.APIKey.Trim()}");
var jsonString = JsonConvert.SerializeObject(new UserRequestBody
{
group_id = userDetails.data.org_id
});
var response = wc.UploadString("https://api.xxxxx.yyy/v2/users", "POST", jsonString);
}
Accept
告訴服務器客戶端將接受的響應類型, Content-type
是關於當前請求或響應的有效負載/內容。 如果請求沒有有效負載/正文,請不要使用Content-type
。
可以在此處找到有關此的更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.