Bazı verileri fogbugz XML API kullanarak tüketiyorum. Bu API daima veriyi UTF-8 olarak sunar..NET 4.5 HttpClient ile kodlama
İstekte bulunmak için WebClient
sınıfını kullanırken kodlamayı ayarlayabiliyorum. Örneğin:
var result = new WebClient();
result.Encoding = Encoding.UTF8;
Peki ya HttpClient
sınıfı nedir?
HttpClient client = new HttpClient();
kullanmam gerekiyor:
client.GetByteArrayAsync(url);
... sonra bir dizeye kodlama (UTF-8) gelen bayt dönüştürmek?
Veya içeriği doğrudan UTF-8 dizesi olarak almanın bir yolu var mı? - Ben kodlama HTTP yanıtı başlıklar tarafından belirlenecek beklediğiniz
<?xml version="1.0" encoding="UTF-8"?>
<response>
Merhaba Jon kullanabilirsiniz. Cevabınız için teşekkürler. Kodlama Etiketi her zaman yanıtı içerir. FogBugz Durumunda, her zaman UTF-8 olarak tanımlanmıştır. İşte XML başında bir örnek Xml version = "1.0" encoding = "UTF-8"?> .... Ben webclient ile bu dayanıyordu, kodlama yoktu Api'den saygınlık duyduğum için, bu yüzden belgelenmiş özellik olmadan api'ye tekrar güvenmeme güveniyorum :-( Yani ByteArray'ı (yukarıdaki kodlarımın üstündeyim gibi) en güvenli yol olmalı? –
@BoasEnkler: İstemci * Gövde * kodlamasını * kullanacağız - bu * başlıklarda belirtilmelidir * Ama dediğim gibi, daha güvenli bir yol, bayt olarak almak ve sadece ikili verilerden ayrıştırmaktır. byte dizisini sarmak için bir 'MemoryStream'.) –
Tamam, en iyi çözüm olduğunu düşünüyorum. hing :) –