我有一个https .net webservice。使用像soap UI这样的工具调用web方法可以正常工作。我无法从flex调用webmethod。我的WSDL在flex中加载得很好。从flex调用HTTPS webservice
部署时,我的Flex应用程序和web服务位于同一台服务器上。当使用机器url和服务器内的访问它工作正常,但不是当我使用Flex应用程序的https url。
例如 - http://machinename/flex/flexApp.html正常工作与https://publicname/wservice/ws.asmx但https://publicname/flex/flexapp.html无法正常工作。
我拥有完整访问权限的跨域策略,并且我在服务器上有一个有效的SSL证书。
当我做从我的本地机器在调试模式下我看到了呼叫Fiddler-
以下的WSDL呼叫转至罚款和返回正确的地方将WebMethod调用它后面的协议显示为HTTPS将协议显示为HTTP并返回错误 - 我一直坚持这一段时间。任何帮助是极大的赞赏。
谢谢, Nikhil。
这里是我的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}"/>
您的Web服务和Flex应用程序从同一供应域?除此之外,我认为你将不得不展示一些代码,并描述你收到的错误。也许你的crossdomain.xml文件。也许是调用你的服务的Flex代码。你确定你在Flex WebSrvice调用中指定了HTTPS吗? – JeffryHouser
您的最后一点..这是我觉得是错误的,当我看到在小提琴手WSDL得到调用显示协议作为HTTPS,当webmethod被调用它显示协议为HTTP似乎失败并返回与502错误。我应该写什么代码来确保呼叫以HTTPS而不是HTTP的形式出现? – Nikhil
通常,您只需将HTTPS值指定为WebService(或HTTPService)类的一部分即可。向我们显示调用服务的代码。 – JeffryHouser