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

时间:2021-03-04 10:20:56

标签: c# json web-services xamarin restapi

我是 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);

1 个答案:

答案 0 :(得分:0)

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

我已经更正了,你可以参考下面的代码。 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");
相关问题