Запросы Flex от URLLoader не принимаются на стороне сервера - PullRequest
0 голосов
/ 15 декабря 2011

сегодняшний вопрос касается запросов URLLoader с использованием зашифрованных строк.

когда я шифрую строку, я получаю следующий результат:

1Kx4dfp5OC7ox0zb0lWzzzlnoPLcoPGE1MrAKOtl3h6SPcFmEdpLnUROSKpPrCl70VHRxrKzhsxHHlb1MRp3++JkvYZ++ghBEG2zbVhyaqQ/0+NDrJ+0cLt3g9THe9POohN6Ufcq9TcnmZVvIFXllg4HrjVNfQrhQCNwxuBgWBf2DRc4eq6hKzEgyLdlllQFc9ssUFlPD3wOBqoI22r+7N82sI3pqsQYBq5VlKHHreqD8Cq0gictnTFS3IqepASGARKyuCIPDCa4zE76VeQV5zgvkFfjDww+C1uZ8PUgjH67DKYqUP9a6euf2v1jUpBrREnm4ZbLAXScDjvrJ11rWYyVXOLZy9nhy9qRBQRvdw+tnBThPTmvxaq+LAusF8IbvDpZgMrZ3buvThnXuSBGXZxaja7fk/FIlm4RSliDTSGySiizFHy7dJePXuV0c9MI6ciOYxmEIg64NnhBZtB8wipUDJWOpoytOD2/sNQBenjZbYN8291msYnbBG+alAOQmEBH5Mn4KyW1VQWE2lBGk9ML+SflND8UXfdHz5Q3psOcMZJxSAURKGq5tjA8KlPPOAdQuVPIcysg2/4lV25QGIdDttQVGrkP+ZHZcHIPTLLD+Vml+PJU/OAJGNPGlf3wawUo+bID0FKur8N6tNyu7Pnoocn7plDi6WSJgUAaYjI4=

Я отправляю это, все кажется хорошо на конце Flex. Но когда я иду на сервер (файлы журналов, не разрешено изменять код на стороне сервера), чтобы проверить, что я получаю, я получаю следующее:

1Kx4dfp5OC7ox0zb0lWzzzlnoPLcoPGE1MrAKOtl3h6SPcFmEdpLnUROSKpPrCl70VHRxrKzhsxHHlb1MRp3  JkvYZ  ghBEG2zbVhyaqQ/0 NDrJ 0cLt3g9THe9POohN6Ufcq9TcnmZVvIFXllg4HrjVNfQrhQCNwxuBgWBf2DRc4eq6hKzEgyLdlllQFc9ssUFlPD3wOBqoI22r 7N82sI3pqsQYBq5VlKHHreqD8Cq0gictnTFS3IqepASGARKyuCIPDCa4zE76VeQV5zgvkFfjDww C1uZ8PUgjH67DKYqUP9a6euf2v1jUpBrREnm4ZbLAXScDjvrJ11rWYyVXOLZy9nhy9qRBQRvdw tnBThPTmvxaq LAusF8IbvDpZgMrZ3buvThnXuSBGXZxaja7fk/FIlm4RSliDTSGySiizFHy7dJePXuV0c9MI6ciOYxmEIg64NnhBZtB8wipUDJWOpoytOD2/sNQBenjZbYN8291msYnbBG alAOQmEBH5Mn4KyW1VQWE2lBGk9ML SflND8UXfdHz5Q3psOcMZJxSAURKGq5tjA8KlPPOAdQuVPIcysg2/4lV25QGIdDttQVGrkP ZHZcHIPTLLD Vml PJU/OAJGNPGlf3wawUo bID0FKur8N6tNyu7Pnoocn7plDi6WSJgUAaYjI4=

на первый взгляд они одинаковые, но если вы внимательно посмотрите, + заменяется пробелом ...

Я даже пытался переключить + на% 2B, но на стороне сервера он читается как% 2B, он не конвертируется в + (в данном случае flex не работает как браузер) .

Буду очень признателен за любые идеи и помощь по этому вопросу.

Запросы выполняются следующим образом:

public function callService(callback:String, request:String):void{
        var url:URLRequest = new URLRequest(server);
        var requestedString:String = handlePluses(request);
        url.useCache = false;
        url.contentType = contentType;
        url.method = method;
        trace("sending: " + requestedString);
        url.data += requestedString);
        serverURL.addEventListener(IOErrorEvent.IO_ERROR, treatIO);
        serverURL.dataFormat = URLLoaderDataFormat.TEXT;
        serverURL.addEventListener(Event.COMPLETE, loadData);   
        serverURL.addEventListener(Event.CONNECT, function():void{trace("connected");});
        try{        
            serverURL.load(url);
        }catch(e:ArgumentError){trace("ArgError: " + e.message);}
        catch(e:SecurityError){trace("SecError: " + e.message);}
        catch(e:TimeoutEvent){trace("===========<Timeout>===========");}
    }

1 Ответ

0 голосов
/ 10 мая 2012

мы исправили эту проблему, переключив символ + с подмножеством экранированных символов, таких как \&\#.

это может быть проблемой для других, пытающихся сделать то же самое и пытаться сохранить минимальный размер.

...