2016-12-23 2 views
1

Dies ist eine einfache Frage, die ich jetzt stundenlang stecken blieb, wird die URL nicht vollständig genommen wird, wie unten gespaltet zu werden:URL wird immer bei „[“ eckige Klammer gespaltet

Image

Diese ist was ich in Code verwende:

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

Ich habe auch versucht, String zu kodieren und zu dekodieren, aber das hat nicht funktioniert. Ich möchte, dass die ganze Sache in der URL ist.

[2]&libraryId=1&userId=4 

Dieser Teil nicht als url Berücksichtigung

ich auch alle URLs statt Myservice.S_DELETE_LIBRARY_BOOK eingefügt, noch wird es bei [2]

ganze url gespaltet immer arbeitet in Browser in Ordnung. Was mache ich falsch?

+0

Warum Codierung URL mit Parametern? Just codieren Param Werte –

+1

können Sie versuchen, Myservice.S_DELETE_LIBRARY_BOOK + "\\ [" + bookData.get (Position) .getBookId() + "\\]" + "& libraryId =" + LibId + "& userId =" + Uid; ' –

+0

Sie können 'URLEncoder.encode (Url1," UTF-8 ");' –

Antwort

2

Encode nur die Abfrage st Ring nach dem Fragezeichen

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

Sollte die [ muß Teil der Website-URL sein, dann sind Sie out-of-Glück, das illegal ist.

1

Sie können damit umgehen.

Angenommen, Sie übergeben den URL-Wert wie unten. (URL hat Klammern in it)

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

Dann wird der Code unten wird die URL in dem Feld aufgespalten und sammeln, die nach ist> Symbol. Der Code identifiziert, was immer da ist> (größer als das Symbol) es ist die vollständige URL. Es besteht also keine Chance, dass die Klammern Ihren Code behindern.

So beenden Sie die Zeichenfolge Einsammeln 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

Ich möchte nicht teilen URL, ich möchte beitreten – Redman

+0

Es teilt nicht die URL. Die tatsächliche identifiziert, was ist die genaue URL, die Sie übergeben. So sammeln Sie die URL auf diese Weise. URLType = URL und URL Wert = http://www.dumyurl.co.uk/[2StackOverflow – Priya

+0

Ich habe meine Antwort nur mit wenig mehr Erklärung bearbeitet. – Priya

2

Statt dessen, warum Sie nicht unten Ansatz verwenden:

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

Oder

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

Ich muss Arraylist in der Nähe von BookIds hinzufügen – Redman

Verwandte Themen