0
에서 이진 파일 가져 :(여기서는 아파치 HttpClient를, 코 틀린 소스 코드) POST 요청을 보내는 POST 요청
val httpPost = HttpPost("http://localhost:8000")
val builder = MultipartEntityBuilder.create()
builder.addBinaryBody("file", File("testFile.zip"),
ContentType.APPLICATION_OCTET_STREAM, "file.ext")
val multipart = builder.build()
httpPost.entity = multipart
val r = httpClient.execute(httpPost)
r.close()
을 나는 불꽃 자바 요청 객체를 통해 같은 내 게시물 처리기에서 요청을받을 수 있습니다. 게시물 요청에서 원본 파일 (파일 이름과 보너스)을 어떻게 검색합니까? 본문이 원본 파일보다 크기 때문에 request.bodyAsBytes() 메서드는 일부 바이트를 추가하는 것으로 보입니다.
덕분에, 스파크의 문서 페이지 하단 르그
감사 답장을하지만, 슬프게도 예는 다시 때문에 작동하지 않습니다 q.raw(). getParts() 또는 req.raw(). getPart ("file")는 단순히 게시물 처리기의 실행을 끝냅니다. 나는 spark-java의 깊은 곳에서 호출을 추적했다. POST 요청은 처리 된 것으로 표시되었다. 핸들러는 여전히 활성화되어 있지만 getParts() 또는 getPart()를 초과하여 실행되지 않습니다. 나는 Kotlin을 처음 사용하기 때문에 spark-java Kotlin 포트의 문제인지 확실하지 않습니다. – osx
실행이 갑자기 멈추는 경우는 예외 일 가능성이 큽니다. 예외를 볼 수있는 추가 경로로 (불쾌한, Java 코드를 다시 확인하십시오.), \t \t'Spark.exception (Exception.class, (e, 요청, 응답) -> {e.printStackTrace();}); 코 틀린을 아는 사람). – cello
답장을 보내 주셔서 다시 한 번 감사드립니다. JetBrains IDE는 코드를 'Spark.exception (Exception :: class.java, {e, request, response -> e.printStackTrace()})'로 변환하고 오류 (다중 메시지 없음)를 찾을 수있었습니다. 이제 코드는 (편집 된) 코드로 넘어 가서,'getParts()'가 빈리스트를 반환하기 때문에'java.lang.NullPointerException'을주게됩니다. 따라서'getPart ("file")'에 대한 예외입니다. POST 요청의 내용 유형은'multipart/form-data; 경계 = Z2Dl0386ZA0OMWccx1VRo6h7emmRriXNz'. – osx