Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Flex

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.09.2008, 14:07
Mamoulian вне форума Посмотреть профиль Отправить личное сообщение для Mamoulian Найти все сообщения от Mamoulian
  № 1  
Ответить с цитированием
Mamoulian

Регистрация: Sep 2008
Сообщений: 1
По умолчанию WebService и basic authentication

Здравствуйте.
Во 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.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 14:43.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.