как получить ответ API в asp.net c # - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть следующий запрос API json

 "myjsonrequest": {
                        "ServiceKey": "Hello",
                        "Identityvals": {
                                        "IDName": "regnum",
                                        "IDValue": "112233"
                        }
        }

любой простой способ получить ответ, я использую ASP.net c #

я попробовал этот код

 HttpClient client = new HttpClient();
            string x = "{'IDName','regnum'},{'IDValue','112233'}";
            var Keys = new Dictionary<string, string>
            {
                   { "ServiceKey", "hello" },
                   { "PractitionerIdentity",x}
                };

        var content = new FormUrlEncodedContent(Keys);
        var response = await client.PostAsync("https://apiurl", content);
        var responseval = await response.Content.ReadAsStringAsync();

Ответы [ 2 ]

0 голосов
/ 23 апреля 2019

Ваши данные Json должны быть сохранены в модели следующим образом:

    public class YourJsonData{
        public string ServiceKey {get; set;}
        //add other names
    } 

Самое лучшее в этом то, что если вы вызываете свой объект, вы получаете переменную обратно для легкого использования.

тогда вы можете добавить его в задачу:

    public async Task<List<YourJsonData>> GetJsonAsync(CancellationToken  cancellationToken = default)
    {
        using (var client = new HttpClient())
        {
            //Make the request, and ensure we can reach it
            var response = await client.GetAsync(yourJosnUrl, cancellationToken);
            if (response.IsSuccessStatusCode)
            {
                //Read the actual stream (download the content)
                var content = await response.Content.ReadAsStringAsync();

                //Make sure we do have some valid content before we try to deserialize it
                if (string.IsNullOrEmpty(content))
                {
                    return new List<YourJsonData>();
                }

                //Deserialize into a list of yourjsondata
                return JsonConvert.DeserializeObject<List<YourJsonData>>(content);
            }
        }
        return new List<YourJsonData>();
    }

также, если вы ленивы, вы можете заменить YourJsonData динамическим. Суть в том, что вы не сможете увидеть, к чему обращаетесь.

0 голосов
/ 23 апреля 2019

Попробуйте это:

var json = new {
          ServiceKey = "",
          PractitionerIdentity = new {
              IDName = "" ,
              IDValue = ""            
           }  
         };
HttpClient client = new HttpClient();
var content = new StringContent(json, Encoding.UTF8, "application/json")
var response = await client.PostAsync("https://apiurl", content);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...