Достъп до необработени данни за тялото на http заявка

Опитвам се да внедря уеб приложение, използвайки play framework като заместител на старата реализация на http сървър, която взаимодейства със стария наследен http клиент без браузър.

Този клиент е написан на Delphi и публикува данни директно в тялото на заявка с някаква заглавна информация за него.

Мислех, че ще вкарам нещо

request.body /* In the play controller */

но нищо няма.

Вижте кода по-долу:

public static void uploadPicture() {

        InputStream data = request.body;
    String fx = Play.getFile("").getAbsolutePath()+File.separator+"uploads"+File.separator+"test.jpg";
        File f = new File(fx);
        FileOutputStream moveTo = new FileOutputStream(fx);
        try {
                byte[] b = new byte[4096];
                for (int x = 0; (data.read(b)) != -1;){
                    moveTo.write(b, 0, x);
            }
        } finally{
            moveTo.close();
        }

    } 

РЕДАКТИРАНЕ: За да изясня мнението си: отидох и създадох прост динамичен уеб проект в eclipse HttpServlet и в doPost() метода, когато получа request.getInputStream(), той съдържа файла, който е изпратен от наследения клиент.

Play прави нещо с тялото на заявката!?

Какви са моите възможности?

Благодаря.

Ирфан


person Irfan Mulic    schedule 01.11.2012    source източник
comment
Сигурни ли сте, че проблемът не е някъде другаде (т.е. небрежно внедряване в наследения клиент)? Използвам request.body и работи както се предполага.   -  person Samuel    schedule 02.11.2012
comment
@Samuel Определено внедряването на клиента е много просто, има име на файл в заглавката, а в тялото е файл. Отидох и създадох прост сервлет и когато получа request.getInputStream() и го запазя във файл, файлът е правилен. Предполагам, че play прави нещо с първоначалната заявка?!   -  person Irfan Mulic    schedule 02.11.2012
comment
Добре, това беше грешка в Play 1.2.4. Инсталирах последната версия 1.2.5 и всичко работи от кутията. Благодаря !   -  person Irfan Mulic    schedule 03.11.2012


Отговори (1)


Добре, това беше грешка в Play 1.2.4. Инсталирах последната версия 1.2.5 и всичко работи от кутията.

Можете да получите достъп до необработеното тяло на заявка в request.body в контролера.

person Irfan Mulic    schedule 02.11.2012