Вот мой простой код, который отлично работает, если вызывается из php или любого другого клиента, а не Adobe Air.Тот же код также работает от вызова из SWF, есть код FluineFX для другой части проекта, но тогда он ничего не делает, чтобы это сломать.
Я нахожу одну вещь, что все вызовы POST почему-то меняются на GET, что меня действительно поражает.Я был бы так рад получить ответ на этот вопрос.Заранее всем спасибо.Ниже приведен практически такой же код из моего веб-сервиса.с кодом AIR прямо под ним.
[WebMethod(EnableSession = true)]
public bool Authenticate(string UserName,string Password)
{
try
{
if (Membership.ValidateUser(UserName, Password)){
FormsAuthentication.SetAuthCookie(UserName, true);
return true;
}
return false;
}
catch (Exception ex)
{
return false;
}
}
и мой звонок с Adobe AIR-кодом, как показано ниже
var ws:WebService = new WebService();
ws.wsdl="http://mysite.com/myservice.asmx?WSDL";
ws.useProxy=false;
ws.addEventListener(LoadEvent.LOAD,onWSDLLoad);
ws.loadWSDL();
ws.Authenticate.addEventListener(ResultEvent.RESULT,resultHandler);
ws.Authenticate.addEventListener(FaultEvent.FAULT,onLoginFaultHandler);
ws.Authenticate("usrname","password");
protected function onLoginFaultHandler(event:FaultEvent):void
{
Alert.show('Login Failed with messsage\r\n[ '+event.fault.faultString+' ]');
/* Error #1085: The element type "br" must be terminated
by the matching end-tag "</br>". */
/* checking the content value of fault event shows
same out put as http://mysite.com/myservice.asmx */
}
protected function onLoginResultHandler(event:ResultEvent):void
{
/* on success code */
}
Этот парень сообщает нам следующее на странице http://verveguy.blogspot.com/2008/07/truth-about-flex-httpservice.html
- Все HTTP GET-запросы очищаются от заголовков.Его нет в стеке Flex, поэтому, вероятно, это базовая среда выполнения проигрывателя Flash Player.
- Все запросы HTTP GET с типом содержимого, отличным от «application / x-www-form-url-encoded», превращаются в запросы POST
- Все запросы HTTP POST, у которых нет фактически опубликованных данных, превращаются в запросы GET.См. 1 / и 2 /
- Все запросы HTTP PUT и HTTP DELETE превращаются в запросы POST.Похоже, что это ограничение браузера, из-за которого проигрыватель Flash застрял.
Я вижу, что мой запрос выше превращается в GET, но тогда у меня действительно есть значения post.ИЛИ, если они каким-то образом не отправлены или не записаны объектом веб-службы?