You can install the Microsoft.AspNet.WebApi.Client NuGet package on the client you could directly use the new HttpClient class (which is the new kid on the block) to consume your WebAPI instead of WebClient:
Sample implementation will be like below
Animal a = new Animal();
a.Message = "öçşistltl";
var URI = "http://localhost/Values/DoSomething";
using (var client = new HttpClient())
{
client
.PostAsync<Animal>(URI, a, new JsonMediaTypeFormatter())
.ContinueWith(x => x.Result.Content.ReadAsStringAsync().ContinueWith(y =>
{
Console.WriteLine(y.Result);
}))
.Wait();
}