2011-10-10 40 views
0

我想從數組轉換爲URL的get-parameters。 我知道apache的HTTPClient,但是它對於applet來說太大了。小程序有簡單的網址生成器嗎?

有沒有簡單的解決方案?

我在我的小程序中有一個List(或數組),我想寫HttpRequest的URL參數。 ParameterFormatter很好,但jar文件對於applet太大了。

編輯: 我發現有Java Optimizer/Shrinker/Reducer工具可以讓你優化jar。例如,proguard

+1

請多解釋一下,或舉一個你想達到的例子。謝謝:) –

+0

我想要這樣的org.apache.commons.httpclient.util.ParameterFormatter.format()。但jar文件對於applet來說太大了。 – KenichiYamamoto

回答

2

您可以簡單地自己開發一個,因爲您只需將它們連接在一起即可組成query string。我做你想要什麼樣的一些假設(如每個變量的關鍵與var開始),但這裏有雲:

public String buildUrl(String baseUrl, String[] getVars) { 

    String url = baseUrl + "?"; 
    // Builds: http://mydomain.com/app? 

    for (int i = 0; i < getVars.length; i++) { 

     url += "var" + i + "=" + getVars[i]; 
     // Builds the query string, ...app?var1=lol 

     if (i < getVars.length - 1) { 

      url += "&"; 
      // Adds the & after each var except for the last one 
      // ...app?var1=lol& 
     } 

     // repeat for each var until done 
     // ... app?var1=lol&var2=cat 
    } 

    return url; 

} 

當然也有其他的天真實現和優化,你可以做的代碼。也可能有一些Java類已經這樣做了,但似乎你必須build it on your own或使用Apache Commons第三方庫(我知道你不能)。

+0

哦!謝謝!我認爲還有其他的解決方案。 – KenichiYamamoto

+0

Btw。不要忘記用'java.net.URLEncoder.encode(...)'封裝這些值,以修復值中包含可能破壞URL或查詢字符串的字符的情況。我讓解決方案成爲讀者的練習(因爲它需要異常處理)。 – Spoike