我有一個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