从flex调用HTTPS webservice

时间:2011-08-26 00:00:51

标签: flex web-services https

我有一个https .net网络服务。使用soap UI等工具调用Web方法可以正常工作。我无法从flex调用web方法。我的WSDL在flex中加载很好。

在部署时,我的flex应用程序和webservice位于同一台服务器上。当使用机器URL并从服务器内部进行访问时,它可以正常工作,但是当我使用https url进行flex应用程序时则不行。

例如 - http://machinename/flex/flexApp.html适用于https://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}"/>

2 个答案:

答案 0 :(得分:0)

我终于能够通过将我调用Flex WebService对象的代码替换为Web服务的特定生成类来解决此问题。

我使用Import WebService(WSDL)为webservice生成了类,并在运行时将主类的url设置为https:// .....

它就像一个魅力......而且我看到它在小提琴手中显示我正确地以HTTPS而不是HTTP出现。

这对我有帮助 - http://livedocs.adobe.com/flex/3/html/help.html?content=security2_15.html 评论由nated。

感谢Flextras.com指出我正确的方向。 解决。

答案 1 :(得分:0)

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