REST-Web-Interface를 통해 Dojo 기반 웹 애플리케이션에 데이터를 제공하기 위해 restlet 2.0.11을 사용하고 있습니다.Restlet을 사용하여 사용자 정의 컨텐츠 범위 헤더 설정
Content-Range: items 0-19/100
(출처 : http://dojotoolkit.org/reference-guide/1.7/dojox/data/JsonRestStore.html)
수단
은 도장의 문서에 따르면, 페이징은 HTTP의 헤더, 따라서 도장은 헤더 등을 기대하는 "콘텐츠 - 범위"를 사용하여 실현 REST-Api는 총 100 개 항목 중 처음 20 개를 제공합니다.
다음과 같은 오류이
getResponse().getAttributes().get("org.restlet.http.headers").add(new Parameter("Content-Range", "FooBar")
결과처럼 수동의 Content-Range 헤더를 설정 :
WARNING: Addition of the standard header "Content-Range" is not allowed. Please use the equivalent property in the Restlet API.
을으로 Restlet의 문서에 따르면 속성은 "message.entity.range"(자료 : http://wiki.restlet.org/docs_2.0/130-restlet.html)
이 해시지도의 직접 수정도 성공하지 못했습니다.
,getResponse().getAttributes().put("message.entity.range", "FooBat");
그것이 SetRange를() 메소드를 가지므로으로 Restlet의 "표현"-object를 사용 유망한 것 같았다 다른 방법이지만 요청 시간 동안 상기 개체 참조가 null :
getResponse().getEntity()
그럼 내 질문은 : Restlet 응답에 Content-Range 헤더를 설정하는 방법입니까?
제 질문에서 말했듯이 getResponse(). getEntity()가 null입니다. 그것을 초기화하는 방법이 있습니까? –
응답 엔티티를 먼저 설정해야합니다 (예 : StringRepresentation 클래스 또는 모든 표현 서브 클래스 사용). –
감사합니다. 나는 그것을 작동 시켰어. (getResponse.setEntity (new StringRepresentation (...))를 호출하여) 다음 문제는 Content-Range가 "bytes"로 시작하도록 하드 코딩되어 있다는 것입니다. Dojo는 헤더가 "items"로 시작해야합니다. 나는 그 기능이 포함 된 재발행 요청을 보낼 것이라고 생각한다. –