Вызов HTTPClient не возвращает правильные данные JSON в Appcelerator Titanium app

Каждый раз, когда я пытаюсь получить информацию от JSON, я получаю ошибку.

function buscar(e){
    var url = 'https://www.dotscancun.com/createjson.php?id=100001';
    var xhr = Ti.Network.HTTPClient({
    onerror: function(e){
        Ti.API.info(this.responseText);
        Ti.API.info(this.status);
        Ti.API.info(e.error);
        },
        timeout: 5000
    });   
    xhr.open('GET',url);
    xhr.send();
    xhr.onload = function(){ 
        var json = JSON.parse(this.responseText); 
        alert(json);
    };
};

Это код.

Ошибка:

[LiveView] Client connected
[ERROR] :  TiHTTPClient: (TiHttpClient-8) [1340,1340] HTTP Error (java.io.IOException): 404 : Not Found
[ERROR] :  TiHTTPClient: java.io.IOException: 404 : Not Found
[ERROR] :  TiHTTPClient:    at ti.modules.titanium.network.TiHTTPClient$ClientRunnable.run(TiHTTPClient.java:1217)
[ERROR] :  TiHTTPClient:    at java.lang.Thread.run(Thread.java:818)

Ошибка 404 это означает, что веб-сайт не существовал, но если вы копируете url он работает, что неправильно?

1 ответ

  1. Сообщение об ошибке, опубликованное в вопросе, не связано с запросом JSON. Скорее это связано с выходом журнала вашего Android устройства. Таким образом, вы можете просто игнорировать этот вызов.

    Вы кодируете его неправильно, потому что:

    • Вы не создаете правильный объект HTTPClient. Вы используете Ti.Сеть.HTTPClient вместо Ti.Сеть.createHTTPClient
    • метод onload должен быть определен перед вызовом open ().

    Вот правильный код для вашего вопроса:

    function buscar(e){
        var url = 'https://www.dotscancun.com/createjson.php?id=100001';
    
        var xhr = Ti.Network.createHTTPClient({
            onerror: function(e){
                Ti.API.info(this.responseText);
                Ti.API.info(this.status);
                Ti.API.info(e.error);
            },
    
            timeout: 5000,
    
            onload : function(){
                alert(this.responseText);
    
                // parse it for further use
                var tempJSON = JSON.parse(this.responseText);
            }
        });
    
        xhr.open('GET',url);
        xhr.send();
    }