How to get object using Httpclient with response Ok in Web Api

后端 未结 2 546
耶瑟儿~
耶瑟儿~ 2021-01-01 17:11

my web api like

    public async Task RegisterUser(User user)
    {
        //User Implementation here

        return Ok(user);
           


        
相关标签:
2条回答
  • 2021-01-01 17:36
    string Baseurl = GetBaseUrl(microService);
    string url = "/client-api/api/token";
    
    using (HttpClient client = new HttpClient())`enter code here`
    {
        client.BaseAddress = new Uri(Baseurl);
        client.DefaultRequestHeaders.Clear();
        client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/x-www-form-urlencoded");
    
        List<KeyValuePair<string, string>> keyValues = new List<KeyValuePair<string, string>>();
    
        keyValues.Add(new KeyValuePair<string, string>("client_id", "5196810"));
        keyValues.Add(new KeyValuePair<string, string>("grant_type", "password"));
        keyValues.Add(new KeyValuePair<string, string>("username", "abc.a@gmail.com"));
        keyValues.Add(new KeyValuePair<string, string>("password", "Sonata@123"));
        keyValues.Add(new KeyValuePair<string, string>("platform", "FRPWeb"));
    
    
        HttpContent content = new FormUrlEncodedContent(keyValues);
        content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
        content.Headers.ContentType.CharSet = "UTF-8";
    
        var result = client.PostAsync(url, content).Result;
        string resultContent = result.Content.ReadAsStringAsync().Result;
    }
    
    0 讨论(0)
  • 2021-01-01 17:56

    You can use (depands on what you need), and de-serialize it back to user object.

    await result.Content.ReadAsByteArrayAsync();
    //or
    await result.Content.ReadAsStreamAsync();
    //or
    await result.Content.ReadAsStringAsync();
    

    Fe, if your web api is returning JSON, you could use

    var user = JsonConvert.DeserializeObject<User>( await result.Content.ReadAsStringAsync());
    

    EDIT: as cordan pointed out, you can also add reference to System.Net.Http.Formatting and use:

    await result.Content.ReadAsAsync<User>()
    
    0 讨论(0)
提交回复
热议问题