wake-up-neo.net

Wie bekomme ich ein Objekt mit Httpclient mit Antwort Ok in Web Api

mein web api gefällt

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

        return Ok(user);
    }

Ich benutze HTTPClient, um Web-API anzufordern, wie unten erwähnt.

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

Wo finde ich ein Benutzerobjekt in meiner Ergebnisanforderung, das in der Clientanwendung implementiert ist?

14
Aqdas

Sie können es verwenden (hängt davon ab, was Sie benötigen) und es zurück zum Benutzerobjekt de-serialisieren.

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

Wenn Ihre Web-API JSON zurückgibt, können Sie dies verwenden

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

BEARBEITEN: Wie Cordan betonte, können Sie auch einen Verweis auf System.Net.Http.Formatting Hinzufügen und Folgendes verwenden:

await result.Content.ReadAsAsync<User>()
30
Robert
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", "[email protected]"));
    keyValues.Add(new KeyValuePair<string, string>("password", "[email protected]"));
    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
Seema As