2010-05-22 11 views
6

Esiste una classe C# o .NET per gestire la negoziazione del contenuto HTTP con un agente utente?Esiste una classe C# o .NET per gestire la negoziazione del contenuto HTTP?

Mi piacerebbe essere in grado di fornire un elenco di tipi di contenuto accettabili, e avere quelli negoziati con il browser per trovare la migliore corrispondenza.

+0

Non capisco la tua domanda. Puoi elaborare? –

+0

http://en.wikipedia.org/wiki/Content_negotiation La negoziazione del contenuto fa parte della specifica HTTP che consente a un agente utente (browser) di elencare i tipi di supporto che accetterà un documento in ordine di "qualità". Quindi nel mio codice vorrei passare nei formati che posso generare e fare in modo che la classe applichi le regole di negoziazione del contenuto come definito nella specifica e restituiscimi il miglior tipo di supporto da inviare. – Jamie

+0

Se la mia applicazione può eseguire il rendering di una parte di dati in HTML, XHTML, XML, PDF o JSON. Ho bisogno di sapere quale browser supporta e in particolare quale considera la migliore qualità. – Jamie

risposta

0

Penso che la parola user agent sia un po 'spenta nella tua domanda ma se vuoi creare una richiesta di una certa fonte (diciamo una a riposo). È possibile utilizzare il kit di WCF Resto Starter (http://wcf.codeplex.com/) per specificare il tipo di contenuto che si desidera o accettare:

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

Questo è il codice lato client, l'OP sta chiedendo informazioni sul codice lato server. Inoltre, la negoziazione del contenuto in WCF è attualmente interrotta: http://wcf.codeplex.com/workitem/40 –