2010-05-22 4 views
6

사용자 에이전트에서 HTTP 컨텐츠 협상을 처리하는 C# 또는 .NET 클래스가 있습니까?HTTP 콘텐츠 협상을 처리 할 C# 또는 .NET 클래스가 있습니까?

허용되는 콘텐츠 형식의 목록을 제공하고 브라우저와 협상하여 최상의 일치를 찾을 수 있기를 바랍니다.

+0

질문이 이해가 가지 않습니다. 당신은 정교 할 수 있습니까? –

+0

http://en.wikipedia.org/wiki/Content_negotiation 콘텐츠 협상은 사용자 에이전트 (브라우저)가 "품질"순서로 문서를 수락 할 미디어 유형을 나열 할 수있게 해주는 HTTP 사양의 일부입니다. 따라서 제 코드에서 생성 할 수있는 형식을 전달하고 클래스가 사양에 정의 된대로 내용 협상 규칙을 적용하고 다시 보낼 수있는 최상의 미디어 유형을 반환하게합니다. – Jamie

+0

내 응용 프로그램이 HTML, XHTML, XML, PDF 또는 JSON으로 데이터를 렌더링 할 수있는 경우. 브라우저가 지원하는 브라우저와 최상의 품질을 고려해야하는 브라우저를 알아야합니다. – Jamie

답변

0

나는 사용자 에이전트라는 단어가 약간의 질문에 있지만 귀하가 특정 소스를 요청하려는 경우 (restfull api를 말하게하십시오)라고 생각합니다. 당신은 당신이 원하는 콘텐츠의 유형을 지정하거나 허용하도록 WCF 나머지 스타터 키트 (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 –

관련 문제