사용자 에이전트에서 HTTP 컨텐츠 협상을 처리하는 C# 또는 .NET 클래스가 있습니까?HTTP 콘텐츠 협상을 처리 할 C# 또는 .NET 클래스가 있습니까?
허용되는 콘텐츠 형식의 목록을 제공하고 브라우저와 협상하여 최상의 일치를 찾을 수 있기를 바랍니다.
사용자 에이전트에서 HTTP 컨텐츠 협상을 처리하는 C# 또는 .NET 클래스가 있습니까?HTTP 콘텐츠 협상을 처리 할 C# 또는 .NET 클래스가 있습니까?
허용되는 콘텐츠 형식의 목록을 제공하고 브라우저와 협상하여 최상의 일치를 찾을 수 있기를 바랍니다.
나는 사용자 에이전트라는 단어가 약간의 질문에 있지만 귀하가 특정 소스를 요청하려는 경우 (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();
}
이것은 클라이언트 측 코드입니다. OP는 서버 측 코드를 묻습니다. 또한 WCF의 콘텐츠 협상이 현재 중단되었습니다. http://wcf.codeplex.com/workitem/40 –
I recently wrote a content negotiation library in F#합니다.
나는 그것에 관해 블로그 here에 관해 blogged했다.
질문이 이해가 가지 않습니다. 당신은 정교 할 수 있습니까? –
http://en.wikipedia.org/wiki/Content_negotiation 콘텐츠 협상은 사용자 에이전트 (브라우저)가 "품질"순서로 문서를 수락 할 미디어 유형을 나열 할 수있게 해주는 HTTP 사양의 일부입니다. 따라서 제 코드에서 생성 할 수있는 형식을 전달하고 클래스가 사양에 정의 된대로 내용 협상 규칙을 적용하고 다시 보낼 수있는 최상의 미디어 유형을 반환하게합니다. – Jamie
내 응용 프로그램이 HTML, XHTML, XML, PDF 또는 JSON으로 데이터를 렌더링 할 수있는 경우. 브라우저가 지원하는 브라우저와 최상의 품질을 고려해야하는 브라우저를 알아야합니다. – Jamie