Различное поведение Titanium HTTPClient от SDK 1.7.5 до 1.8.0.1 - PullRequest
1 голос
/ 12 января 2012

Я обнаружил два разных поведения для Titanium HTTPClient в SDK 1.7.5 и 1.8.0.1

Вот мой полный код:

function Synchronizer () {
//server calls
var callStack = [{
            url: 'http://url1',
            name: 'foo1'
            },
            {
            url: 'http://url2',
            name: 'foo2'
            },
            {
            url: 'http://url3',
            name: 'foo3'
            },
            {
            url: 'http://url4',
            name: 'foo4'
            }
    ];

//processing data
var dataStack = new Array();

//call stack pointer
var stackPointer = 0;

//HTTPClient
var httpClient = Titanium.Network.createHTTPClient({
        onerror:function(e){
            UIManager.SynchronizeUI.onError();
        },
        ondatastream:function(e)    {   
            UIManager.SynchronizeUI.setProgressBarValue(stackPointer);  
        }
    });

//....

//DataConsumer
var DataConsumer = new DataConsumer();

//Method for synchronization
this.synchronizeAll = function (usr, pwd) {

    if(!Ti.Network.online){
      Ti.API.info('Not connected to the internet');
      return;
    }

    Ti.API.info('Avvia syncro');
    stackPointer = 0;

    //Autentication call
    httpClient.open('POST', 'http://url/login');
    httpClient.onload = function() {
        // If authenticated
        if(this.responseText.trim() == ('OK,' + usr)) {
            Ti.API.info('Login successful');
            consumeCallStack();
        }
        //else
        else {
            //...               
        }


    }
    httpClient.send({username: usr, password: pwd, ajaxlogin: 'true'});
    Ti.API.info('Calling login..');
}

/*
 * stack consumer
 */
function consumeCallStack() {

    Ti.API.info('Execute call ' + stackPointer);

    httpClient.open('GET', callStack[stackPointer].url);

    httpClient.onload = function(){
            alert(httpClient.responseText);
            //data
            var data = JSON.parse(this.responseText);
            Ti.API.info('Retrieved data for ' + callStack[stackPointer].name);
            //..
        }
    httpClient.send(); 
}

HTTPClient извлекает данные, и функция ошибки не задействуется. Проблема состоит в том, что после аутентификации второй вызов HTTPClient получает JSON, который я хочу, если он работает с 1.7.5, в то время как получает ту же страницу успешного входа в систему первого вызова с 1.8.0.1. Может быть, проблема с cookie не включена? Большое спасибо!

1 Ответ

0 голосов
/ 10 декабря 2013

Используйте примечания к выпуску, чтобы узнать, какие исправления ошибок относятся к вашей проблеме:

...