Как использовать nusoap webservice из Flash - PullRequest
1 голос
/ 20 июля 2010

Я пытаюсь вызвать веб-сервис, написанный на nuSoap, из приложения AS3 Flash; Я читал, что начиная с AS3, поддержка веб-сервиса была удалена во Flash (правда, не понимаю, почему ...); Я пробовал решения для трех сторон (be.wellconsidered, carlo alducente), но они не работают с wsdl, который генерирует nusoap Я действительно волнуюсь, и я должен использовать Flash, а не Flex, кто-нибудь может мне помочь?

Заранее спасибо с.

1 Ответ

3 голосов
/ 20 июля 2010

Это не легкий (он добавляет что-то около 130 Кбайт к вашему SWF), но вы можете использовать API Webservice Flex в проекте Actionscript, не требуя никакой черной магии, кроме добавления необходимых SWC вручную.Я сделал это сам и у меня не было проблем.Я добавил flex.swc, framework.swc, rpc.swc и utilities.swc (плюс все SWC в папке локали).На самом деле, я не очень много добавил, просто добавил все SWC, которые я нашел в SDK, пока он не скомпилировался.Поскольку компилятор будет добавлять только ссылочные классы, это не должно иметь большого значения, и это было быстро и легко.

Я вставляю некоторый код, возможно, он полезен (большинство примеров, которые я нашел, используют mxlm):

    private function setupWebService():void {
        _ws = new WebService();
        _ws.addEventListener(LoadEvent.LOAD,handleWsdlLoad);

        _ws.getFeeds.addEventListener(InvokeEvent.INVOKE,handleGetFeedsInvoke);         
        _ws.getFeeds.addEventListener(ResultEvent.RESULT,handleGetFeedsResult);
        _ws.getFeeds.addEventListener(FaultEvent.FAULT,handleGetFeedsFault);
        _ws.loadWSDL(_wsdlUrl);
    }   
    //  at some point, call this method; not sure if you have to wait until wsdl is loaded
    //  I think it's not necessary; if I recall correctly, all calls are enqueued
    private function testGetFeeds():void {
        _ws.getFeeds("some_param");
    }

Надеюсь, это поможет.

PS.Это класс WebService, на который я ссылаюсь в коде:

import mx.rpc.soap.WebService;  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...