2010-05-22 6 views
6

HTTP İçeriği Anlaşmasını bir Kullanıcı Aracısı ile işlemek için bir C# veya .NET sınıfı var mı?HTTP İçeriği Anlaşmasını yönetmek için bir C# veya .NET sınıfı var mı?

Kabul edilebilir İçerik Türleri listesi sağlayabilmek ve en iyi eşleşmeyi bulmak için tarayıcıyla görüşmeler yapabilmeyi isterim.

+0

Sorunuzu anlamıyorum. Detaylandırır mısın? –

+0

http://en.wikipedia.org/wiki/Content_negotiation İçerik Anlaşması, bir Kullanıcı Aracısı'nın (tarayıcı) "tür" sırasına göre bir belgeyi kabul edeceği ortam türlerini listelemesine izin veren HTTP Spesifikasyonu'nun bir parçasıdır. Kodumda, oluşturabileceğim formatları aktarmak istiyorum ve sınıfın Şartnamede tanımlandığı şekilde İçerik Müzakere kurallarını uyguladığını ve geri göndermek için bana en iyi medya türünü döndürmesini istiyorum. – Jamie

+0

Uygulamam HTML, XHTML, XML, PDF veya JSON'ta bir veri parçası oluşturabilir. Tarayıcının hangi desteği desteklediğini ve özellikle hangisinin en iyi kaliteyi düşündüğünü bilmem gerekiyor. – Jamie

cevap

0

Bence kullanıcı aracısı sorgunuzda biraz kapalıdır, ancak bir kaynak isteğinde bulunmak istiyorsanız (bir dinlenme api diyelim). İstediğiniz içerik türünü belirtmek veya kabul etmek WCF istirahat Starter kiti (http://wcf.codeplex.com/) kullanabilirsiniz:

HttpClient client = new HttpClient(new Uri("http://restfull/api/")); 
//this is XML but could be JSON or whatever the API can supply 
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml")); 
var response = client.Get(path); 

if (response != null) 
{ 
    response.EnsureSuccessStatusCode(); 
    //this will be XML 
    string xml = response.Content.ReadAsString(); 
} 
+0

Bu, istemci tarafı kodudur, OP sunucu tarafı kodunu soruyor. Ayrıca, WCF'de içerik anlaşması şu anda bozuk: http://wcf.codeplex.com/workitem/40 –

İlgili konular