Flex - проблема при передаче параметра сервлету через.HTTPService - PullRequest
0 голосов
/ 27 июня 2011

Я новичок в Flex и вызываю сервлет Java из клиента Flex, используя HttpService. Я сталкиваюсь с некоторой проблемой при передаче параметра, значением которого является Object

Вот гибкий код, который захватывает изображение с веб-камеры:

            :
            var bitmapImageContainer:UIComponent = new UIComponent();
            bitmapData = new BitmapData(localVideo.width,localVideo.height);
            capturedImage = new Bitmap(bitmapData);
            bitmapImageContainer.addChild(capturedImage);
            addElement(bitmapImageContainer);
            :

             public function captureImage():void {      
                if (localVideo != null) {
                    bitmapData.draw(localVideo);
                    saveImage.enabled = true;
                }
             }

И я пытаюсь отправить захваченное изображение в сервлет Java через. HttpService, как показано ниже:

<fx:Declarations>
    <s:HTTPService id="service" url="http://localhost:8080/MyWebApp/CapturedImageSaver" result="resultHandler(event)" fault="faultHandler(event)" method="POST" showBusyCursor="true" resultFormat="text">
        <s:request xmlns="">
            <image>{bitmapData}</image>
            <hello>value</hello>
        </s:request>
    </s:HTTPService>
</fx:Declarations>  

Вопросы

Q1. Должен ли я отправить bitmapData или capturedImage объект сервлету?

Q2. На стороне сервера (сервлет), кому мне нужно привести полученный объект со стороны клиента?

Q3. На стороне сервера (сервлет) я получаю только один параметр, т. Е. привет . Почему я не получаю второй параметр, т.е. image ?

Ответы [ 2 ]

0 голосов
/ 07 июля 2011

Я не проверял ваш код, но, похоже, вам нужно передать байты из BitmapData в виде байтового массива. Вот один из примеров преобразования (вам придется отрывать его самостоятельно).

http://www.richardleggett.co.uk/blog/index.php/2006/08/11/getpixels

Надеюсь, это поможет вам. Что касается того, как декодировать на стороне сервера, вам нужно упаковать байты в правильный тип MIME-оболочки.

0 голосов
/ 28 июня 2011

Не используйте встроенные параметры, просто запишите его:

service.send({image:bitmapData,hello:value});

Это должно работать, если ваша служба его не видит, это может быть неверной конфигурацией.

...