2015-01-29 3 views
4

게시 방법 본문에 많은 양의 텍스트를 보내고 있습니다. 저는 그것을 테스트하기 위해 우편 배달부를 사용합니다. 그러나 그 작업 벌금과 내가 같이 요청 본문을 읽을 수 있습니다대용량 데이터 요청 본문

String text = request().body().asText(); 

하지만 난 텍스트에 null를 얻을 본문에 많은 양의 데이터를 보내려고 할 때. 또한 문자열 작성기를 사용하여 시도했지만 또한 null을 가져옵니다.

InputStream is = new ByteArrayInputStream(request().body().asText().getBytes()); 
     BufferedReader br = new BufferedReader(new InputStreamReader(is)); 

해결 방법이 있습니까?

+0

게시하려는 데이터가 128k (Play의 기본값)보다 큽니까? 그렇다면 그것을 변경 aplication.conf'parsers.text.maxLength = 4M', 예를 들어 – Salem

+0

@Salem 그 경우에는 내가 그나마 플레이 로직 컨트롤러와 계속 생각하지 않습니다. 대신 나는 그것이 나쁜 요청이나 그런 것을 던질 것 같아요. 이것은 예입니다 [링크] (http://stackoverflow.com/questions/11327499/max-file-upload-size-in-play-framework-2-0) –

+0

감사합니다, parsers.text.maxLength = 4M 추가 application.conf가 나를 위해 일했습니다! – user3687679

답변

1

기본적으로 재생은 업로드 데이터 크기를 100KB에서 텍스트 파서 (*)로 제한합니다. 이것은 그 버퍼 파서에

@BodyParser.Of(value = TheBodyParser.class, maxLength = 4 * 1024 * 1024) 
public Result upload() { 
    // (...) 
} 

또는

def upload = Action(parse.text(maxLength = 4 * 1024 * 1024)) { request => 
    //() 
} 

(*)

을 사용하여 액션 application.conf

parsers.text.maxLength=4M 

나 또는 특정 응답하여 큰 값이 전역 parsers.text.maxLength을 사용하여 변경 될 수있다 콘텐츠 (멀티 파트 형식 제외) 제한은 10MB이며 parsers.disk.maxLength

을 사용하여 변경할 수 있습니다.210