2016-12-23 74 views
1

這是我被困了幾個小時,現在,該URL沒有完全採取一個簡單的問題,它是越來越分裂如下越來越分裂是我在代碼中使用:URL在「[」括號

String Url1 = Myservice.S_DELETE_LIBRARY_BOOK+"["+bookData.get(position).getBookId()+"]"+"&libraryId="+LibId+"&userId="+Uid; 

    //did encoding and decoding for testing 
    try { 
     Url1= URLEncoder.encode(Url1,"UTF-8"); 
    } catch (UnsupportedEncodingException e) { 
     e.printStackTrace(); 
    } 
    try { 
     Url1 = URLDecoder.decode(Url1, "UTF-8"); 
    } catch (UnsupportedEncodingException e) { 
     e.printStackTrace(); 
    } 

    Log.d("LibraryAdapterUrl",""+Url1); 

我也嘗試編碼和解碼字符串,但這並沒有工作。我希望整個事情都在URL內部。

[2]&libraryId=1&userId=4 

那部分是不考慮的URL,

我甚至貼上所有的網址,而不是Myservice.S_DELETE_LIBRARY_BOOK,它仍然是在[2]

整個URL獲取分裂是工作在瀏覽器 罰款。我究竟做錯了什麼?

+0

爲什麼使用params編碼URL?只編碼參數值 –

+1

你可以試試'Myservice.S_DELETE_LIBRARY_BOOK +'\\ [「+ bookData.get(position).getBookId()+」\\]「+」&libraryId =「+ LibId +」&userId =「+ Uid;' –

+0

你可以做'URLEncoder.encode(Url1,「UTF-8」);' –

回答

2

編碼只有查詢st問號

String url = Myservice.S_DELETE_LIBRARY_BOOK + "?xxx=" 
     + URLEncoder.encode("[" + bookData.get(position).getBookId() + "]", "UTF-8") 
     + "&libraryId=" + LibId + "&userId=" + Uid; 

後環如若[需要是網站網址的一部分,那麼你就外的運氣,這是非法的。

1

你可以處理這個。

假設你傳遞如下的url值。 (URL具有括號中它)

MyLandingURL = URL>http://www.dumyurl.co.uk/[2]stackoverflow

然後下面的代碼會分裂,並收集在陣列的URL是後>符號。該代碼標識了>(大於符號)之後的所有內容,它是完整的URL。所以,大括號不會妨礙你的代碼。

所以,你最終收集字符串 http://www.dumyurl.co.uk/[2]stackoverflow

public String readURLor(String URLidentity) throws Exception { 

    String locator = properties.getProperty(URLidentity); 

    // Split the value which contains locator type and locator value 
    String URLType = locator.split(">")[0]; 
    String URLvalue = locator.split(">")[1]; 

    if (URLType.toLowerCase().equals("url")) 
     return URLvalue; 
    else 
     throw new Exception("URL Type '" + URLType + "'is not defined in OR file!!"); 
+0

我不想拆分網址,我想加入網址 – Redman

+0

它沒有拆分網址。實際上可以確定您傳遞的確切網址是什麼。 所以代碼以這種方式收集URL。 URLType = URL和 URL值= http://www.dumyurl.co.uk/[2]stackoverflow – Priya

+0

我剛剛編輯我的答案,多一點解釋。 – Priya

2

取而代之的是,你爲什麼不使用下面的方法:

String test = "http://<ipaddress>/"+URLEncoder.encode("yourArrayValue", "UTF-8") + "&libraryId=" + LibId + "&userId=" + Uid; 

或者

public class HttpClientTest { 
     public static void main(String[] args) throws URISyntaxException { 
      List<NameValuePair> qparams = new ArrayList<NameValuePair>(); 
      qparams.add(new BasicNameValuePair("query1", "query1Value")); 
      qparams.add(new BasicNameValuePair("query2", "query2Value")); 
      qparams.add(new BasicNameValuePair("query3", "query3Value"));     
      URI uri = URIUtils.createURI("http", "www.google.com", -1, "/search", 
             URLEncodedUtils.format(qparams, "UTF-8"), null); 
      HttpGet httpget = new HttpGet(uri); 
      System.out.println(httpget.getURI()); 
      //http://www.google.com/search?query1=query1Value&query2=query2Value&query3=query3Value 
     } 
     } 
+0

我必須在bookIds附近添加數組列表 – Redman