1、flex源码:
var request:URLRequest = new URLRequest("http://127.0.0.1:8080/960housekeeper/account/login.action?pic=aaa.pic") ;
//提交的方式
request.method=URLRequestMethod.POST;
request.contentType = 'applicatoin/octet-stream';
//提交的数据
request.data=byteArray;
var urlLoader:URLLoader = new URLLoader(request);
urlLoader.load(request);
2、java端源码:普通的流读写即可,获取到request.getInputStream
3、关键点在于crossdomain.xml文件的配置,需要将其放置在tomcat默认应用的根目录下,保证http://127.0.0.1:8080/crossdomain.xml能够读取到该文件。crossdomain.xml文件内容为:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<site-control permitted-cross-domain-policies="all" />
<allow-access-from domain="*" to-ports="*" />
</cross-domain-policy>
未配置crossdomain.xml文件会导致flex调用navigateToURL(request);才能到达java服务器端,同时java服务器端读取到的流为空,无法获取到二进制数据;同时调用urlLoader.load(request);无法进入java服务器的现象。