簡體   English   中英

如何使用javascript調用鈦中的WebService

[英]How to Call a WebService in titanium using javascript

我是鈦的新手,想從我的鈦應用程序中調用一個Web服務。 webService返回json響應。 因為我知道使用XMLRPC調用webService但是對於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(端點)有許多WebServices,那么我將給出方法名稱,即要調用的WS名稱。

從Titanium mobile的API文檔開始,函數openrequest.open接受3個參數:

  1. 方法名稱(http方法名稱)

  2. 請求的網址

  3. async(boolean property)默認為true。

在上面的代碼中什么是"POST"在那里做? 如果我的WS名稱是system.connect那么我將在代碼中提到它?

如果WS需要參數,那么我們如何將參數發送到上面代碼的webService。

我知道request.send()可以用來發送參數但是如何?

要調用Web服務,您應該:

    // 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);

    };

地址是您的webservice網址。

method是您想要調用的方法。

address + method是一個URL,在您的示例中:“http://test.com/services/json”調用的方法將命名為json。

args :是一個json對象,其變量名稱應與webservice參數具有完全相同的名稱。 您可以像這樣創建一個參數對象:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM