Play 프레임 워크 2.1 HTTP HEAD 메서드 응답

user3013111

Scala Play Framework 2.1에서 응답 헤더 (HTTP HEAD 메서드) 만 반환하려면 어떻게해야합니까?

비시 오르

불행히도 Java 솔루션이 있지만 Scala로 '변환'할 수 있습니다. 일반적인 개념은 다음과 같습니다.

  • Catch HEAD 요청을 전용 메서드로 보냅니다.
  • 이 메서드 autoHead(String originalPath)는 WebServices 전달 매개 변수를 사용하여 GET 요청을 보내고 응답 상태 만 반환합니다.
  • 추가 헤더를 추가 X_FORWARD_FROM_HEAD합니다. 즉, 각 적중 후 작업이 DB에 무언가를 기록하는 경우 HEAD요청을 피할 수 있습니다 .

암호:

/**
 * Tries to get headers of resource with WebServices and return headers only.
 *
 * @param originalPath Path of the resource
 * @return Headers for HEAD request
 * @throws IllegalAccessException
 */
public static Result autoHead(String originalPath) throws IllegalAccessException {


    WS.WSRequestHolder forwardedRequest = WS.url("http://" + request().host() + request().path());
    // this header will allow you to make additional choice i.e. avoid tracking the request or something else
    // see condition in index() action
    forwardedRequest.setHeader("X_FORWARD_FROM_HEAD", "true");

    // Forward original headers
    for (String header : request().headers().keySet()) {
        forwardedRequest.setHeader(header, request().getHeader(header));
    }

    // Forward original queryString
    for (String key : request().queryString().keySet()) {
        for (String val : request().queryString().get(key)) {
            forwardedRequest.setQueryParameter(key, val);
        }
    }

    // Call the same path but with GET
    WS.Response wsResponse = forwardedRequest.get().get();

    // Set returned headers to the response
    for (Field f : Http.HeaderNames.class.getFields()) {
        String headerName = f.get(null).toString();
        if (wsResponse.getHeader(headerName) != null) {
            response().setHeader(headerName, wsResponse.getHeader(headerName));
        }
    }

    return status(wsResponse.getStatus());
}

/**
 * Checks if request if forwarded from HEAD request
 *
 * @return true if 'X_FORWARD_FROM_HEAD' header exists and is set to true
 */
public static boolean forwardedFromHead() {
    return (request().getHeader("X_FORWARD_FROM_HEAD") != null && "true".equals(request().getHeader("X_FORWARD_FROM_HEAD")));
}

경로 :

HEAD    /                  controllers.Application.autoHead(originalPath:String ?= "/")
HEAD    /*originalPath     controllers.Application.autoHead(originalPath:String)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Play 프레임 워크 onHandlerNotFound 메서드

분류에서Dev

C #에서 HTTP 응답을 처리하기위한 프레임 워크

분류에서Dev

Action in Play 프레임 워크 내에서 호출 된 Action의 응답을 얻는 방법

분류에서Dev

Play2 프레임 워크에서 Hibernate XML 매핑 사용

분류에서Dev

ABP 프레임 워크를 사용한 사용자 지정 API 응답 HTTP 상태 코드

분류에서Dev

Play 프레임 워크를 사용하여 스트림을 HTTP 청크 응답으로 인라인으로 표시하는 방법

분류에서Dev

Karate 프레임 워크의 응답에서 json 객체 추출

분류에서Dev

yii 프레임 워크에서 매우 느린 ajax 응답

분류에서Dev

Materialisecss 프레임 워크에서 행의 응답 성

분류에서Dev

CoffeeScript Play 2 프레임 워크의 베어 컴파일 모드 설정

분류에서Dev

뷰에서 컨트롤러 메서드 사용-Play 프레임 워크-Scala

분류에서Dev

Django Rest 프레임 워크 : Pickle 응답

분류에서Dev

Play 프레임 워크, HTTP POST 요청 헤더 설정

분류에서Dev

Play 프레임 워크에서 오류 메시지 통합

분류에서Dev

CORS Play 프레임 워크

분류에서Dev

Play 프레임 워크에서 드롭 다운 채우기

분류에서Dev

서버리스 프레임 워크로 응답 데이터 모의

분류에서Dev

Masstransit 프레임 워크의 Azure Queue Receiver에서 API 응답 가져 오기

분류에서Dev

Django REST 프레임 워크 GIS에서 GeoJSON 응답을 얻는 방법

분류에서Dev

Play 2 프레임 워크와 함께 MongoDB 사용

분류에서Dev

Play 프레임 워크 사양 2 실패 실패

분류에서Dev

Slick 2 : Play 프레임 워크로 매끄러운 행 삭제

분류에서Dev

봄 5.1 업데이트 - java.lang.NoClassDefFoundError가 : 조직 / 스프링 프레임 워크 / HTTP / 서버 / 반응 / ServletServerHttpResponse $ ResponseBodyProcessor

분류에서Dev

Intellij IDEA 13에서 단위 테스트를 실행하는 Play 프레임 워크 2

분류에서Dev

Play 프레임 워크 2의 구성에서 동적으로 애플리케이션 이름 표시

분류에서Dev

Play2 프레임 워크 초보자. <select>에서 선택한 모든 요소 가져 오기

분류에서Dev

Play 프레임 워크 1.2.5에서 스트림이 닫힘

분류에서Dev

Play에서 SSL 시행! 프레임 워크 2.1.3

분류에서Dev

Play 프레임 워크에서 Angular js 페이지 호출

Related 관련 기사

  1. 1

    Play 프레임 워크 onHandlerNotFound 메서드

  2. 2

    C #에서 HTTP 응답을 처리하기위한 프레임 워크

  3. 3

    Action in Play 프레임 워크 내에서 호출 된 Action의 응답을 얻는 방법

  4. 4

    Play2 프레임 워크에서 Hibernate XML 매핑 사용

  5. 5

    ABP 프레임 워크를 사용한 사용자 지정 API 응답 HTTP 상태 코드

  6. 6

    Play 프레임 워크를 사용하여 스트림을 HTTP 청크 응답으로 인라인으로 표시하는 방법

  7. 7

    Karate 프레임 워크의 응답에서 json 객체 추출

  8. 8

    yii 프레임 워크에서 매우 느린 ajax 응답

  9. 9

    Materialisecss 프레임 워크에서 행의 응답 성

  10. 10

    CoffeeScript Play 2 프레임 워크의 베어 컴파일 모드 설정

  11. 11

    뷰에서 컨트롤러 메서드 사용-Play 프레임 워크-Scala

  12. 12

    Django Rest 프레임 워크 : Pickle 응답

  13. 13

    Play 프레임 워크, HTTP POST 요청 헤더 설정

  14. 14

    Play 프레임 워크에서 오류 메시지 통합

  15. 15

    CORS Play 프레임 워크

  16. 16

    Play 프레임 워크에서 드롭 다운 채우기

  17. 17

    서버리스 프레임 워크로 응답 데이터 모의

  18. 18

    Masstransit 프레임 워크의 Azure Queue Receiver에서 API 응답 가져 오기

  19. 19

    Django REST 프레임 워크 GIS에서 GeoJSON 응답을 얻는 방법

  20. 20

    Play 2 프레임 워크와 함께 MongoDB 사용

  21. 21

    Play 프레임 워크 사양 2 실패 실패

  22. 22

    Slick 2 : Play 프레임 워크로 매끄러운 행 삭제

  23. 23

    봄 5.1 업데이트 - java.lang.NoClassDefFoundError가 : 조직 / 스프링 프레임 워크 / HTTP / 서버 / 반응 / ServletServerHttpResponse $ ResponseBodyProcessor

  24. 24

    Intellij IDEA 13에서 단위 테스트를 실행하는 Play 프레임 워크 2

  25. 25

    Play 프레임 워크 2의 구성에서 동적으로 애플리케이션 이름 표시

  26. 26

    Play2 프레임 워크 초보자. <select>에서 선택한 모든 요소 가져 오기

  27. 27

    Play 프레임 워크 1.2.5에서 스트림이 닫힘

  28. 28

    Play에서 SSL 시행! 프레임 워크 2.1.3

  29. 29

    Play 프레임 워크에서 Angular js 페이지 호출

뜨겁다태그

보관