Возвращение файла в ответ API на сервере undertow - PullRequest
0 голосов
/ 17 октября 2018

Как я могу отправить файл в ответ API на сервере Undertow?Как только этот API вызывается, он должен прочитать этот файл и вернуть его в ответе этого API.например.мы можем взять любой файл, помещенный в локальную файловую систему.

Ниже приведен фрагмент кода, в котором я определил обработчик, который пытается прочитать файл и поместить его в ответ с помощью интерфейса отправителя undertow, но он работает неправильно: -

public void handleRequest(HttpServerExchange exchange) throws Exception {       
        try {
            FileInputStream input = new FileInputStream("C:\\Users\\GUR52484\\Desktop\\cdaiLog.txt");
            exchange.getResponseHeaders().add(new HttpString("Content-Type"), "application/octet-stream");
            System.out.println("Length of byte array is: "+toByteArrayUsingJava(input).length);
            exchange.getResponseSender().send(ByteBuffer.wrap(toByteArrayUsingJava(input)));
            input.close();
        }catch(Exception ex) {
            System.out.println(ex.getMessage());
        }
       //     exchange.getResponseHeaders().add(new HttpString("Content-Type"), "application/json");
       //      exchange.getResponseSender().send("{\"execResult\":\"0\"}");        
    }

    private byte[] toByteArrayUsingJava(InputStream is) throws IOException{ 
        ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
        int reads = is.read(); 
        while(reads != -1){ 
            baos.write(reads); 
            reads = is.read(); 
        } 
        return baos.toByteArray(); 
    }
...