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

my web api like

public async Task<IHttpActionResult> RegisterUser(User user) { //User Implementation here return Ok(user); } 

I am using HTTPClient to request web api as below.

 var client = new HttpClient(); string json = JsonConvert.SerializeObject(model); var result = await client.PostAsync( "api/users", new StringContent(json, Encoding.UTF8, "application/json")); 

Where can I find the user object in my query for the result that is implemented in the client application?

+7
c # asp.net-mvc asp.net-web-api asp.net-web-api2
source share
2 answers

You can use (depending on what you need) and de-serialize it back to a custom object.

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

Fe, if your web api returns JSON, you can use

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

EDIT: as Kornan pointed out, you can also add a link to System.Net.Http.Formatting and use:

 await result.Content.ReadAsAsync<User>() 
+9
source
 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; } 
+1
source

All Articles