apache-flex 从Flex调用HTTPS Web服务

d8tt03nd  于 2022-11-01  发布在  Apache
关注(0)|答案(2)|浏览(185)

我有一个https .netwebservice。使用soap UI之类的工具调用web方法工作正常。我无法从flex调用webmethod。我的WSDL在flex中加载正常。
在部署时,我的Flex应用程序和WebService位于同一台服务器上。当使用机器URL并从服务器内部访问时,它工作正常,但当我为Flex应用程序使用https URL时就不行了。
例如-http://machinename/flex/flexApp.htmlhttps://publicname/wservice/ws.asmx配合工作正常,但https://publicname/flex/flexapp.html无法工作。
我有一个跨域策略,可以完全访问,而且我在服务器上有一个有效的SSL证书。
当我在调试模式下从本地计算机进行调用时,我在Fiddler中看到以下内容-
WSDL调用运行正常并正确返回,协议显示为HTTPS,而它后面的webmethod调用显示协议为HTTP并返回错误-我在这方面已经坚持了很长一段时间。非常感谢任何帮助。
谢谢,尼基尔。
下面是调用它的Flex代码:

//business delegate

public function BusinessDelegate(responder : IResponder):void
    {
        _responder = responder;
        _service = ServiceLocator.getInstance().getService("sqlWebService");
        _service.loadWSDL();
    }

    //Login User
    public function Login(userId:String,password:String):void
    {
        var asyncToken:AsyncToken = _service.LoginUser(userId,password);
        asyncToken.addResponder(_responder);
    }

并且服务定位器具有以下标记,我在其中将来自外部的URL设置为https://...。

<mx:WebService 
    id="sqlWebService" 
    useProxy="false" 
    concurrency="multiple"
    showBusyCursor="true"
    wsdl="{Url}"/>
nhjlsmyf

nhjlsmyf1#

最后,我用为Web服务生成的特定类替换了调用FlexWebService对象的代码,从而解决了这个问题。
我使用Import WebService(WSDL)为Web服务生成了类,并在运行时将主类上的url设置为https://.....
而且它的工作原理就像一个魅力...我看到在Fiddler中,它显示我正确地作为HTTPS而不是HTTP出去。
这里是什么帮助了我-http://livedocs.adobe.com/flex/3/html/help.html?content=security2_15.html评论由nated。
感谢Flextras.com为我指出正确的方向。

db2dz4w8

db2dz4w82#

如果在Flex中使用WCF服务和WebService,请对HTTP使用service.svc?wsdl,对HTTPS使用service.svc/wsdl?wsdl。

相关问题