如何使用 C# 在 POST 请求中发送 json 请求正文数据

Posted

技术标签:

【中文标题】如何使用 C# 在 POST 请求中发送 json 请求正文数据【英文标题】:How to send json request body data in POST request using C# 【发布时间】:2021-03-04 10:20:56 【问题描述】:

我是 C# 新手。 我想使用 C# 在 POST 请求中发送 JSON 请求正文。

我想从 Rest URL 获取结果,但它显示状态代码 500。

如何格式化请求正文,以便能够从其余 URL 获取结果?

我的 JSON 请求正文 -->

"filter":"labtestName":["labtestName":"Ada"]

我尝试过的代码

string data1 = "\filter\":\"labtestName\":[\"labtestName\":\"Ada\"]";
        var RestURL = "https://nort.co.net/v1api/LabTest/Hurlabtest";
        HttpClient client = new HttpClient();
        string jsonData = JsonConvert.SerializeObject(data1);
        client.BaseAddress = new Uri(RestURL);

        StringContent content1 = new StringContent(jsonData, Encoding.UTF8, "application/json");
        client.DefaultRequestHeaders.Add("apptoken", "72f303a7-f1f0-45a0-ad2b-e6db29328b1a");
        client.DefaultRequestHeaders.Add("usertoken", "cZJqFMitFdVz5MOvRLT7baVTJa+yZffc5eVoU91OqkMYl6//cQmgIVkHOyRZ7rWTXi66WV4tMEuj+0oHIyPS6hBvPUY5/RJ7oWnTr4LuzlKU1H7Cp68za57O9AatAJJHiVPowlXwoPUohqe8Ad2u0A==");
        HttpResponseMessage response = await client.PostAsync(RestURL, content1);
        var result = await response.Content.ReadAsStringAsync();
        var responseData = JsonConvert.DeserializeObject<LabtestResponseData>(result);

【问题讨论】:

500 表示内部服务器错误。这意味着服务器端有问题。 先生,这是请求正文的问题,我无法发送正确格式的请求正文 这有帮助吗? ***.com/questions/46044206/… 是的,它对我有帮助 【参考方案1】:

您向方法发送了错误的数据,

我已经更正了,你可以参考下面的代码。 myData 字符串已经是 JSON 字符串,无需再次序列化。

string myData = "\"filter\": \"labtestName\": [\"labtestName\": \"Ada\"]";
//string data1 = "\filter\":  \"labtestName\": [\"labtestName\": \"Ada\"]";
var RestURL = "https://tcdevapi.iworktech.net/v1api/LabTest/HSCLabTests";
HttpClient client = new HttpClient();
//string jsonData = JsonConvert.SerializeObject(myData);
client.BaseAddress = new Uri(RestURL);

StringContent content1 = new StringContent(myData, Encoding.UTF8, "application/json");

【讨论】:

@Sunny 你为什么不接受这个答案?它对你有用,我为你投入了时间,有礼貌 对不起先生。它发生错误,我很感谢你的时间。

以上是关于如何使用 C# 在 POST 请求中发送 json 请求正文数据的主要内容,如果未能解决你的问题,请参考以下文章

使用 HttpClient 和 C# 在 post 请求中发送 json

C# HttpClient:如何在 POST 请求中发送查询字符串

使用 C# 和 HttpWebRequest 向端点发送 POST 请求

带有包含数组的 Json 的 C# POST 请求

求一个c#的 post请求 json 并且接收返回json数据的一个demo。

如何在 Swift 3 中使用 Alamofire 在 POST 请求中将给定的 JSON 作为参数发送?