Как вызвать веб-сервис в титаниуме с использованием javascript - PullRequest
4 голосов
/ 03 января 2012

Я новичок в Titanium и хочу вызвать веб-сервис из моего приложения Titanium.WebService возвращает ответ JSON.Поскольку мне известно о вызове веб-службы с использованием XMLRPC, но я очень запутался в отношении json.

До сих пор я знал, что нам нужно создать HTTPClient.

var request = Titanium.Network.createHTTPClient();
request.open("POST", "http://test.com/services/json");
request.onload = function() {
    var content = JSON.parse(this.responseText);//in the content i have the response data
};

request.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //did not understand this line
request.send();

Теперьпроблема в том, что в моем URL (конечных точках) много веб-сервисов, поэтому, где я буду давать имя метода, т. е. имя WS, которое должно быть вызвано.

Из документации API Titanium Mobile функция open т.е. request.open принимает 3 параметра:

  1. имя метода (http имя метода)

  2. URL запроса

  3. async (логическое свойство) по умолчанию true.

В приведенном выше коде, что "POST" делает там ??и если мое имя WS system.connect, то где я буду упоминать это в коде?

А что, если WS нужен параметр, так как мы можем отправить параметр в webService из приведенного выше кода.

Я знаю, что request.send() можно использовать для отправки параметров, но как ??

1 Ответ

14 голосов
/ 03 января 2012

Чтобы вызвать веб-сервис, вы должны:

    // create request
    var xhr = Titanium.Network.createHTTPClient();
    //set timeout
    xhr.setTimeout(10000);

    //Here you set the webservice address and method
    xhr.open('POST', address + method);

    //set enconding
    xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8");

    //send request with parameters
    xhr.send(JSON.stringify(args));

    // function to deal with errors
    xhr.onerror = function() {

    };

    // function to deal with response
    xhr.onload = function() {
        var obj = JSON.parse(this.responseText);

    };

address - это URL вашего веб-сервиса.

method - метод, который вы хотите использоватьвызов.

address + method - это URL, в вашем примере: "http://test.com/services/json" вызванный метод будет называться json.

args : это объект json, где его переменнаяимена должны иметь то же имя, что и параметры веб-службы. Вы можете создать объект параметров следующим образом:

var args = {};
args.parameter1 = 'blabla';
args.parameter2 = 'blaaaa';
...