如何通过在 Titanium 中传递不同的值来创建请求字符串?

How to create a request string with passing different values in Titanium?

我正在创建这样的 URL-String:

URLString = %@sale-ws/lots/sales?yardNumber=%@&saleFromDate=%@&range=%@&saleToDate=%@&pageSize=%@&pageNo=%@&sortBy=%@&sortType=%@&filterStartYear=%@&filterEndYear=%@&filterMake=%@&filterModel=%@&filterLocationId=%@&filterLane=%@&filterSellerId=%@&searchInSearchString=%@

所以在 Titanium 中,我想将值动态传递到给定的字符串中。 我试过这个,但没有得到正确的回应。

var urlParameterStringNew
=String.format(URLString,Alloy.Globals.SERVER_URL,"","","","","","","","","","","","","","","","");

您可以对 url 组件进行编码并将其添加到您的 url。

var encoded = Ti.Network.encodeURIComponent('Pass'+' your'+' string'+' here');
var urlString = "https://www.google.co.in/search?&q="+encoded;

您可以定义自己的函数返回所需的字符串值:

var params = [] //Add all your params to the array, order is important!

function myFunction("yourBaseString", params) { //Add all your param values
    yourString = yourBaseString;
    for (index = 0; index < params.length; ++index) {
        yourString = yourString.replace("%@", params[index]);
    }
    return yourString;
}

这应该有效,因为 replace("@%", "paramString") 仅替换字符串的第一次出现。请试一试并提供一些反馈,因为我无法测试该功能!

第一个改变,我必须像这样创建我的 URL

URLString = "%ssale-ws/lots/sales?yardNumber=%s&saleFromDate=%s&range=%s&saleToDate=%s&pageSize=%s&pageNo=%s&sortBy=%s&sortType=%s&filterStartYear=%s&filterEndYear=%s&filterMake=%s&filterModel=%s&filterLocationId=%s&filterLane=%s&filterSellerId=%s&searchInSearchString=%s",

然后我可以像这样简单地用任何其他值替换 %s 的值

var finalRequestString = String.format(URLString),Alloy.Globals.SERVER_URL,"","","","","","","","","","","","","","","","");