Flex WebService POST将https更改为http



我有一个Flex应用程序需要连接到https web服务。web服务WSDL URL为WSDL -url.company.com,其中使用ssl卸载。

Flex应用程序驻留在web服务驻留的同一服务器上。

web服务在mxml中定义为

<s:WebService id="webService" wsdl="https://wsdl-url.company.com/service.asmx?wsdl">
服务器根目录下的crossdomain.xml文件是
<?xml version="1.0"?> 
<!DOCTYPE cross-domain-policy SYSTEM /xml/dtds/cross-domain-policy.dtd> 
<cross-domain-policy> 
<site-control permitted-cross-domain-policies="all"/> 
<allow-access-from domain="*" to-ports="*" /> 
<allow-http-request-headers-from domain="*" headers="*"/> 
</cross-domain-policy>

如果swf是从HTTPS地址加载的,当页面加载(web服务初始化)时,swf将不会请求crossdomain.xml,但是当web服务被调用时,将尝试POST到http的等效内容,而不是HTTPS。

。使用Firebug,我看到Flex正在执行POST到,这应该是HTTPS。为什么Flex将其更改为http而声明为https?

另一方面,如果swf是从同一台服务器的HTTP加载的,crossdomain.xml将被下载,但是Flash调试器将抛出一个"Channel.Security. xml"。当web服务试图初始化时,应用程序崩溃。

解决方案发现

对于任何有相同问题的人来说,问题在项目的.fml中的wsdl端点。尽管我在WebService声明中将服务设置为https://,但Flash Builder生成的WSDL-endpoint默认为http。在加载应用程序时,通过编程方式将端点正确地设置为https是可行的:

webService.endpointURI = "https://wsdl-url.company.com/service.asmx";

最新更新