2008-10-06 5 views
3

사실, 저는이 방법을 사용하고 있습니다. 더 좋은 방법이 있습니까?요청에서 JSON을 허용하는지 확인하는 더 좋은 방법이 있습니까?

private bool AcceptJson(HttpRequest request) 
{ 
    const string JsonType = "application/json"; 

    if (request.ContentType.ToLower(CultureInfo.InvariantCulture).StartsWith(JsonType)) 
    { 
     return true; 
    } 

    if (request.AcceptTypes.Select(t => t.ToLower(CultureInfo.InvariantCulture) == JsonType).Count() > 0) 
    { 
     return true; 
    } 

    return false; 
} 

답변

2

이러한 접근 방식은 잘못된 값 (q 값 또는 응용 프로그램/json이 하위 문자열 인 콘텐츠 유형을 설명하지 않음)을 초래할 수 있습니다.

괜찮은 Accept 헤더 파서는 this article about XHTML에 있습니다. 알고리즘을 선택한 언어로 이식하고 사용중인 컨텐트 유형에 맞춰야합니다.

1

'더 나은'이 무슨 뜻인지 아는 것은 어렵습니다. 엄밀히 말하면 콘텐츠 유형에 대해 걱정할 필요가 없으므로 콘텐츠 유형을 삭제할 수 있습니다. 기술적으로 더 좋은 방법은 Select 호출을 제거하고 Count 메서드에 조건을 넣는 것입니다.

관련 문제