![]() |
|
||||||||||
|
|||||
|
Регистрация: Sep 2008
Сообщений: 1
|
Здравствуйте.
Во flex и flesh начинающий, помогите разобраться. Хочу получать данные от самописного вебсервиса, вебсервис элементарный - две функции, одна возвращает строку, другая число. Написан на java с axis2. Работает, проверено. Работает через .NET и через Flex. Но сервис необходимо закрыть от постаронних. Включаю на axis2 basic authentication - сервис работает и доступен из приложения на .NET, а вот из flex'а получить доступ не выходит - выводится ошибка. Может быть поделитесь примером, как это делается правильно? У меня так: package
{
import mx.controls.Alert;
import mx.rpc.events.*;
import mx.rpc.soap.LoadEvent;
import mx.rpc.soap.mxml.WebService;
import flash.system.*;
public final class MainApp
{
private var ws:WebService;
private var url:String = "http://pma:8080/axis2/services/HelloService?wsdl";
private var user:String = "webservice";
private var password:String = "webservice";
public function MainApp()
{
trace(PlayerVersion());
Service();
}
private function PlayerVersion(): String
{
var v:String = "Player version: ";
v = v + Capabilities.version;
if (Capabilities.isDebugger)
v = v + " debugger";
return v;
}
private function Service(): void
{
try {
ws = new WebService();
ws.useProxy = true;
ws.wsdl = url;
ws.setCredentials(user, password); // это надо?
ws.setRemoteCredentials(user, password); // А это, какая строка нужна?
ws.addEventListener(FaultEvent.FAULT, errorHandler);
ws.addEventListener(LoadEvent.LOAD, loadHandler);
ws.loadWSDL();
}
catch(e:Object) {
trace("Web service initialization error");
if(e.message)
trace(e.message);
else
trace("Unknown error");
}
}
private function loadHandler(event:LoadEvent):void
{
ws.getHelloString.addEventListener(ResultEvent.RESULT, getHelloStringResult);
ws.getHelloString.send();
ws.getNumber.addEventListener(ResultEvent.RESULT, getNumberResult);
ws.getNumber.send();
}
private function errorHandler(event:FaultEvent):void
{
trace("Web Service error:" );
if (event.message)
{
trace(event.message.toString());
}
else
{
trace("Unknown error!");
}
Alert.show("Ошибка запроса к вебсервису", "Ошибка соединения");
}
private function getHelloStringResult(e:ResultEvent): void
{
Alert.show(e.result.toString());
}
private function getNumberResult(e:ResultEvent): void
{
Alert.show(e.result.toString());
}
}
}
Web Service error:
(mx.messaging.messages::HTTPRequestMessage)#0
body = (Object)#1
clientId = (null)
contentType = "application/x-www-form-urlencoded"
destination = ""
headers = (Object)#2
DSRemoteCredentials = "d2Vic2VydmljZTp3ZWJzZXJ2aWNl"
DSRemoteCredentialsCharset = (null)
httpHeaders = (Object)#3
messageId = "11A297B4-19FE-F942-B249-79AB369CEAAF"
method = "GET"
recordHeaders = false
timestamp = 0
timeToLive = 0
url = "http://pma:8080/axis2/services/HelloService?wsdl"
|
![]() |
![]() |
Часовой пояс GMT +4, время: 14:43. |
|
|
« Предыдущая тема | Следующая тема » |
|
|