[英]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文檔開始,函數open
即request.open
接受3個參數:
方法名稱(http方法名稱)
請求的網址
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.