Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I decode URL in Android Application? [duplicate]

Tags:

java

android

url

I am trying to write an Android app, and it's supposed to retrieve the content of a CDN URL, which are always URLEncoded. For the sake of example, I am using a youtube URL, because they are formatted the same way.

    public static String getText(String url) throws Exception {     URL website = new URL(url);     URLConnection connection = website.openConnection();     BufferedReader in = new BufferedReader(                             new InputStreamReader(                                 connection.getInputStream()));      StringBuilder response = new StringBuilder();     String inputLine;      while ((inputLine = in.readLine()) != null)          response.append(inputLine);      in.close();      return response.toString(); }  /**  * @param args the command line arguments  */ public static void main(String[] args) {     try {     String page = getText("http://www.youtube.com/watch?v=QH2-TGUlwu4");     String[] temper = page.split("flashvars=\"");     page = temper[1];     temper = page.split("\"     allowscriptaccess=\"always\"");     page = temper[0];     temper = page.split("url_encoded_fmt_stream_map=");     page = temper[1];     temper = page.split("fallback_host");     page = temper[0];     page = page.replaceAll("url%3D", ""); **     page = URLDecoder.decode(page, "UTF-8"); **     page = page.replaceAll("hd720&", "hd720"); **     System.out.println(page);              // TODO code application logic here     } catch (Exception ex) {         Logger.getLogger(app.class.getName()).log(Level.SEVERE, null, ex);     } } 

The code that is starred is (probably) where it is giving me trouble. The system.out.println outputs

http%3A%2F%2Fo-o.preferred.ord08s01.v3.lscache1.c.youtube.com%2Fvideoplayback%3Fsparams%3Did%252Cexpire%252Cip%252Cipbits%252Citag%252Csource%252Cratebypass%252Ccp%26fexp%3D909708%252C907322%252C908613%26itag%3D44%26ip%3D99.0.0.0%26signature%3D2889261E861AF0E724519652960C1BF31DA5BABD.A621580215B6416151470893E2D07BDE7AFF081E%26sver%3D3%26ratebypass%3Dyes%26source%3Dyoutube%26expire%3D1327316557%26key%3Dyt1%26ipbits%3D8%26cp%3DU0hRTFNMVF9KUUNOMV9LRlhGOlNaUzBvTG1tdEp2%26id%3D407dbe4c6525c2ee&quality=large& 

I want that URL decoded in a way that I can wrap it in a method to download it.

I have already tried the string.replaceAll() method. In short, It doesn't work

Please help me regarding this.

like image 916
Rebecca Avatar asked Jan 23 '12 04:01

Rebecca


People also ask

What is URLDecoder decode?

public class URLDecoder extends Object. Utility class for HTML form decoding. This class contains static methods for decoding a String from the application/x-www-form-urlencoded MIME format. The conversion process is the reverse of that used by the URLEncoder class.

How do you encode and decode URL parameters in Java?

Encode the URLprivate String encodeValue(String value) { return URLEncoder. encode(value, StandardCharsets. UTF_8. toString()); } @Test public void givenRequestParam_whenUTF8Scheme_thenEncode() throws Exception { Map<String, String> requestParams = new HashMap<>(); requestParams.


1 Answers

The string you have there is URL encoded.

String afterDecode = URLDecoder.decode(stingvalue, "UTF-8"); 
like image 170
Kushan Avatar answered Sep 18 '22 19:09

Kushan