我是Flex和使用HttpService从Flex客户端调用Java servlet的新手。我在传递一个值为Object
的参数时遇到了一些问题以下是从网络摄像头捕获图像的flex代码:
:
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 servlet。 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 对象发送到servlet吗?
Q2。在服务器端(servlet),我需要从客户端转发收到的对象?
Q3。在服务器端(servlet),我只得到一个参数,即 hello 。为什么我没有得到第二个参数,即图像?
答案 0 :(得分:0)
不要使用内联参数,只需编码:
service.send({image:bitmapData,hello:value});
这应该有效,如果您的服务没有看到它,可能是配置错误。
答案 1 :(得分:0)
我没有测试过您的代码,但似乎您需要将BitmapData中的字节作为字节数组传递。这是转换的一个例子(你必须自己摘录)。
http://www.richardleggett.co.uk/blog/index.php/2006/08/11/getpixels
希望能帮到你。至于如何在服务器端解码,你需要将字节打包到正确类型的mime包装器中。