web-dev-qa-db-ja.com

HttpClientを使用してオブジェクトを取得する方法Ok Web Apiで

私のWeb APIのような

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

        return Ok(user);
    }

以下で説明するように、HTTP APIを使用してWeb APIを要求しています。

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

クライアントアプリケーションに実装されている結果リクエストでユーザーオブジェクトを見つけることができる場所

14
Aqdas

使用して(必要なものをデパンド)、ユーザーオブジェクトにデシリアライズして戻すことができます。

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

Fe、Web APIがJSONを返している場合、使用できます

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

編集:コーダンが指摘したように、System.Net.Http.Formattingへの参照を追加して使用することもできます。

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