using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
namespace WebApiClient
{
class Program
{
private static void Main(string[] args)
{
MainAsync().Wait();
Console.ReadLine();
}
static async Task MainAsync()
{
await ReadValues();
await AddValue();
await ReadValue(1);
await DeleteValue(2);
await DeleteValue(111); // Delete with Error
Console.ReadLine();
}
private async static Task DeleteValue(int id)
{
var url = "http://localhost:13628/api/Values/" + id;
using (var client = new HttpClient())
{
var response = await client.DeleteAsync(url);
if (response.IsSuccessStatusCode)
{
await ReadValues();
}
else
{
Console.WriteLine(response.ReasonPhrase);
Console.WriteLine(response.StatusCode);
}
}
}
private async static Task ReadValue(int id)
{
var url = "http://localhost:13628/api/Values/" + id;
using (var client = new HttpClient())
{
var httpResponseMessage = await client.GetAsync(url);
if (httpResponseMessage.IsSuccessStatusCode)
{
var jsonString = httpResponseMessage.Content.ReadAsStringAsync().Result;
var result = JsonConvert.DeserializeObject<ObjectToStore>(jsonString);
Console.WriteLine("Getting one value->" + result.Value);
}
else
{
Console.WriteLine(httpResponseMessage.StatusCode);
Console.WriteLine(httpResponseMessage.ReasonPhrase);
}
}
}
private async static Task AddValue()
{
var url = "http://localhost:13628/api/Values/";
using (var client = new HttpClient())
{
var value = new ObjectToStore() {Id = 3, Value = "value 3"};
var content = JsonConvert.SerializeObject(value);
var stringContent = new StringContent(content, Encoding.Default, "application/json"); // Note: need to include media type
var result = await client.PostAsync(url, stringContent);
if (result.IsSuccessStatusCode)
{
await ReadValues();
}
else
{
Console.WriteLine(result.StatusCode);
Console.WriteLine(result.ReasonPhrase);
}
}
}
private static async Task ReadValues()
{
var url = "http://localhost:13628/api/Values";
var client = new HttpClient();
var response = await client.GetAsync(url);
if (response.IsSuccessStatusCode)
{
var jsonString = response.Content.ReadAsStringAsync().Result;
var values = JsonConvert.DeserializeObject<List<ObjectToStore>>(jsonString);
foreach (ObjectToStore value in values)
{
Console.WriteLine(value.Value);
}
}
}
}
public class ObjectToStore
{
public int Id { get; set; }
public string Value { get; set; }
}
}
No comments:
Post a Comment