2010-05-22 2 views
6

Есть ли класс C# или .NET для обработки HTTP-контента с помощью User Agent?Есть ли класс C# или .NET для обработки переговоров по HTTP-контенту?

Я хотел был бы быть в состоянии снабдить список приемлемых типов содержимого, и они согласовали с браузером для того чтобы найти самое лучшее сопряжение.

+0

Я не понимаю ваш вопрос. Можете ли вы уточнить? –

+0

http://en.wikipedia.org/wiki/Content_negotiation Консолидация содержимого является частью спецификации HTTP, которая позволяет агенту пользователя (браузере) перечислить типы носителей, которые он примет документ в порядке «качества». Поэтому в моем коде я хотел бы передать в форматах, которые я могу сгенерировать, и чтобы класс применял правила согласования содержимого, как определено в Спецификации, и возвращает мне лучший тип медиаданных для отправки. – Jamie

+0

Если мое приложение может отображать часть данных в HTML, XHTML, XML, PDF или JSON. Мне нужно знать, что браузер поддерживает, и, в частности, тот, который он считает лучшим качеством. – Jamie

ответ

0

Я думаю, что пользовательский агент слова немного в вашем вопросе, но если вы хотите построить запрос определенного источника (скажем, restfull api). Вы можете использовать набор WCF Rest Starter (http://wcf.codeplex.com/), чтобы указать тип контента, который вы хотите или принять:

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

Это код на стороне клиента, OP спрашивает о серверном коде. Кроме того, согласование содержимого в WCF в настоящее время нарушено: http://wcf.codeplex.com/workitem/40 –