İlkay İlknur

just a developer...

HttpClient Artik Her Platformda !

.Net Framework 4.5 ve Win RT'nin gelmesiyle beraber bagimlisi ve hastasi oldugumuz tiplerden biri hiç süphesiz ki HttpClient :) Get, post, put gibi http operasyonlarini yapmamizi asiri derecede kolaylastiran bu tip ile artik istedigimiz http bazli servisi hizli bir sekilde kullanabilmekteyiz.

Örnegin, HttpClient ile bir get operasyonu yapmak istersem asagidaki gibi bir kod yazmam yeterli.

HttpClient client = new HttpClient();
var response = await client.GetAsync("http://www.ilkayilknur.com");

Eger post operasyonu yapmam gerekirse de asagidaki gibi bir kod yazip post istegimi gönderebiliyorum.

public class PostBody
{
    public string Name { getset; }
    public string Surname { getset; }
}

async void PostAsync()
{
    PostBody body = new PostBody()
    {
        Name = "Ilkay",
        Surname = "Ilknur"
    };
    string jsonBody = Newtonsoft.Json.JsonConvert.SerializeObject(body);
    HttpClient client = new HttpClient();
    var response = await client.PostAsync("http://www.ilkayilknur.com"new StringContent(jsonBody));
}

Hal böyle olunca tabi developerlar da HttpClient'i .Net Framework 4.5 ve Win RT'de kullanmanin yaninda http servisilerini siklikla kullandigimiz Windows Phone gibi ortamlarda da bu tipin kullanilabilmesini Microsoft'tan talep ettiler :)

Microsoft'un da son yillarda yaptigi en güzel seylerden biri hiç süphesiz ki developerlarin sözünü ve taleplerini dinlemesi :) Sözün özü HttpClient tipi artik portable library olarak tüm platformlarda kullanilabilir durumda ! Ilgili nuget paketini Install-Package Microsoft.Net.Http komutuyla projenize ekleyebilirsiniz.

PM> Install-Package Microsoft.Net.Http

Cannot await "System.Threading.Tasks.Task" hatasi

Nuget paketini projenize eklediniz hersey yolunda gidiyor ancak Windows Phone gibi veya .Net Framework 4.0  gibi bir ortamda asenkron bir kod yazmaya kalktiginizda "Cannot await System.Threading.Tasks.Task" hatasini alirsiniz. Bu hatanin nedeni kullandiginiz platformda async & await desteginin olmamasidir. Bunun çözümü de daha önceki blog yazimda bahsettigim gibi o platform için gerekli olan Microsoft.Bcl.Async nuget paketinin projeye eklenmesi. Böylece kullandigimiz platformla ilgili async & await destegi projemize eklenmis olacak ve biz de aliskin oldugumuz gibi asenkron kodlarimizi yazabilecegiz.

PM> Install-Package Microsoft.Bcl.Async

Hepinize kolay gelsin :)



Yorum Gönder


Yorumlar

  • profile

    İlkay İlknur

    • 2
    • 12
    • 2014

    Evet SL 5'i PCL olarak destekliyor ancak status code'u alırken problem olmaması lazım. Tam olarak sorun nedir ?

  • profile

    umut

    • 28
    • 11
    • 2014

    silverlight 5 desteği olmadığından mı response status code'unu doğru vermiyor?yani pcl olarak mı destekliyor silverlight 5 'i?