2012-01-23 4 views
10

가능한 중복 :
How to do URL decoding in Java?가 어떻게 안드로이드 응용 프로그램에서 URL을 디코딩 할

나는 안드로이드 응용 프로그램을 작성하는 것을 시도하고, 그리고는 CDN URL의 내용을 검색하기로했다, 항상 URL 인코딩되어 있습니다. 예를 들어, 같은 방식으로 형식이 지정되었으므로 YouTube URL을 사용하고 있습니다.

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

별표 표시된 코드는 문제가되는 부분 일 가능성이 큽니다. 에서 System.out.println 출력은

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& 

나는 그것을 다운로드하는 방법에 포장 할 수있는 방법으로 디코딩 해당 URL을합니다.

이미 string.replaceAll() 메소드를 사용해 보았습니다. 즉, 작동하지 않습니다.

도와주세요. URLDecoder

+0

안드로이드 버전의 [URLDecoder] (http://developer.android.com/reference/java/net/URLDecoder.html). –

답변

4

.

String afterDecode = URLDecoder.decode(stingvalue, "UTF-8"); 
50

당신이 인코딩 된 URL이 가지고있는 문자열을 사용

관련 문제