미디어 유형을 'application/json'으로 제한했습니다. 그래서 요청 헤더에 'Content-Type : text/plain'이 포함되어 있으면 아래 오류 메시지와 상태 코드 415로 응답합니다.이 동작은 예상되지만 상태 코드 415로 빈 응답을 보내고 싶습니다. 어떻게 할 수 있습니까? 순수한 웹 API?415 상태 코드에 대한 오류 메시지를 사용자 정의하는 방법은 무엇입니까?
3
A
답변
1
요청 내용 유형이 지원되지 않는 경우 초기 파이프 라인에 요청의 콘텐츠 형식을 확인하고 빈 몸으로 415 상태 코드를 반환합니다 메시지 처리기를 만들 수 있습니다
:
이public class UnsupportedContentTypeHandler : DelegatingHandler
{
private readonly MediaTypeHeaderValue[] supportedContentTypes =
{
new MediaTypeHeaderValue("application/json")
};
protected async override Task<HttpResponseMessage> SendAsync(
HttpRequestMessage request, CancellationToken cancellationToken)
{
var contentType = request.Content.Headers.ContentType;
if (contentType == null || !supportedContentTypes.Contains(contentType))
return request.CreateResponse(HttpStatusCode.UnsupportedMediaType);
return await base.SendAsync(request, cancellationToken);
}
}
가이 메시지 처리기를 추가 HTTP 구성의 메시지 핸들러 (에서이을 WebApiConfig) : 모든
config.MessageHandlers.Add(new UnsupportedContentTypeHandler());
그리고 당신은 얻을 것이다 빈 응답 콘텐츠 형식을 제공하지 않았거나 지원되지 않는 콘텐츠 형식을 가진 요청
public UnsupportedContentTypeHandler()
{
supportedContentTypes = GlobalConfiguration.Configuration.Formatters
.SelectMany(f => f.SupportedMediaTypes).ToArray();
}
: 전역 설정에서 미디어 유형을 지원받을 수 있습니다
참고 (이 데이터를 중복되지 않도록하기 위해)
0
정상적인 방법으로 응답을 보내십시오. httpstatuscode enum으로 int를 전송하십시오.
response.StatusCode = (HttpStatusCode)415;
또한 이와 같은 응답을 설정합니다.
HttpResponseMessage response = Request.CreateResponse((HttpStatusCode)415, "Custom Foo error!");
사용자 정의 설명 오류 메시지의 전체 예입니다.
public Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken)
{
HttpResponseMessage response = Request.CreateResponse((HttpStatusCode)415, "Custom Foo error!");
return Task.FromResult(response);
}
관련 문제
- 1. OAuthAuthorizationServerProvider의 오류 메시지를 사용자 정의하는 방법은 무엇입니까?
- 2. installshield 오류 메시지를 사용자 정의하는 방법은 무엇입니까?
- 3. 유효하지 않은 입력에 대한 오류 메시지를 사용자 정의하는 방법은 무엇입니까?
- 4. 비누 메시지를 사용자 정의하는 방법은 무엇입니까?
- 5. Yii에서 오류 디스플레이 메시지를 사용자 정의하는 방법은 무엇입니까?
- 6. Symfony에서 DataTransformer 오류 메시지를 사용자 정의하는 방법은 무엇입니까?
- 7. 같은 필드에 대해 다른 오류 메시지를 사용자 정의하는 방법은 무엇입니까?
- 8. Restlet의 오류 메시지를 사용자 정의하는 방법
- 9. 상태 모나드를 정의하는 방법은 무엇입니까?
- 10. loggingConfiguration에 대한 포맷터를 사용자 정의하는 방법은 무엇입니까?
- 11. 속성 길이를 포함하도록 validates_length_of 메시지를 사용자 정의하는 방법은 무엇입니까?
- 12. VC++ 프로젝트에서 DLL 누락 오류 메시지를 정의하는 방법은 무엇입니까?
- 13. SF2 : 양식 유형 메시지를 사용자 정의하는 방법은 무엇입니까?
- 14. Qt :이 코드에 대한 신호 인수를 올바르게 정의하는 방법은 무엇입니까?
- 15. Worklight에서 직접 업데이트 메시지를 사용자 정의하는 방법은 무엇입니까?
- 16. Gitlab에서 병합 요청 메시지를 사용자 정의하는 방법은 무엇입니까?
- 17. 잘못된 사용자 입력에 대한 오류 메시지를 표시하는 방법은 무엇입니까?
- 18. 예외 메시지를 사용자 정의하는 방법
- 19. backoffice에서 regex 유효성 검사 메시지를 사용자 정의하는 방법은 무엇입니까?
- 20. crystal_servlet_uri를 사용자 정의하는 방법은 무엇입니까?
- 21. 반복적으로 PHP 클라이언트. 오류 메시지를 사용자 정의하는 방법?
- 22. FBDialog에서 메시지를 미리 정의하는 방법은 무엇입니까?
- 23. HRESULT 코드에 대한 진단 메시지를 생성 하시겠습니까?
- 24. Trac TicketQuery에 대한 변수를 정의하는 방법은 무엇입니까?
- 25. asp.net (IIS7)에서 http 상태 코드에 대한 자세한 설명을 얻으십시오.
- 26. 숫자 하위 옵션의 유효성을 검사하기 위해 오류 메시지를 사용자 정의하는 방법은 무엇입니까?
- 27. MVC에서 상태/오류 메시지를 처리하고 표시하는 가장 좋은 방법은 무엇입니까?
- 28. UIWebView를 사용자 정의하는 방법은 무엇입니까?
- 29. MPMoviePlayerController를 사용자 정의하는 방법은 무엇입니까?
- 30. TabBarItems를 사용자 정의하는 방법은 무엇입니까?