2012-12-11 2 views
0

웹 사이트의 소스 코드를 가져올 수있는 간단한 Android 앱을 만들려고합니다. 어쨌든, 내가 쓴 다음 나는 소스 코드를 가져옵니다 다른 방법으로 여러 번 셋째 줄을 변경하려고했습니다웹 사이트 소스 코드를 가져 오는 중 오류가 발생했습니다.

WebView webView = (WebView) findViewById(R.id.webView); 
try { 
    webView.setWebViewClient(new WebViewClient());   
    InputStream input = (InputStream) new URL(url.toString()).getContent(); 
    webView.loadDataWithBaseURL("", "<html><body><p>"+input.toString()+"</p></body></html>", "text/html", Encoding.UTF_8.toString(),""); 
    setContentView(webView); 
} catch (Exception e) { 
    Alert alert = new Alert(getApplicationContext(), 
          "Error fetching data", e.getMessage()); 
} 

,하지만 그들은 모두 더 메시지 (경고에 오류가 날 리디렉션 제목 만).

내가 뭘 잘못하고 있니?

답변

0

왜 이것을 사용하여 웹 페이지를로드 할 수없는 특별한 이유가 있습니까?

webView.loadUrl("www.example.com"); 

당신이 정말로 당신이 그것을 조작하고 당신이하려고로 표시 할 수 있도록 문자열로 소스 코드를 잡아하려면 콘텐츠를 스트림을 열고 다음 읽어 표준 자바 방법을 사용하여 시도 문자열에 데이터, 당신은 당신이 원하는대로 어떤 작업을 수행 할 수 있습니다합니다 : 그것은 여전히 ​​"오류 가져 오는 데이터를"... (필자는 웹 페이지의 소스 코드를 보여주고 싶은, 그리고 문자열로가 경고

InputStream is = new URL("www.example.com").openStream(); 

InputStreamReader is = new InputStreamReader(in); 
StringBuilder sb = new StringBuilder(); 
BufferedReader br = new BufferedReader(is); 
String read = br.readLine(); 

while(read != null) { 
    sb.append(read); 
    read = br.readLine(); 
} 

String sourceCodeString = sb.toString(); 
webView.loadDataWithBaseURL("www.example.com/", "<html><body><p>"+sourceCodeString+"</p></body></html>", "text/html", Encoding.UTF_8.toString(),"about:blank"); 
+0

런타임에서 더 많은 작업을 수행 할 수 있도록) – funerr

+0

실제 예외는 무엇입니까? e.getMessage() 문자열을 게시하면 아마 알 수 있습니다. 또한 올바른 경로를 모두 확인할 수 있도록 loadDataWithBaseURL에 첫 번째 및 마지막 인수를 추가해야한다고 생각합니다. 이 대답을 포함하도록 내 대답을 업데이트했습니다. – mattgmg1990

+0

1) "오류"가 발생하면 e.getMessage()가 비어 있습니다. 2) example.com 웹 사이트를 표시하고 싶지는 않지만 단순히 WebView에서 제공 한 소스 코드 (기능을 쉽게하기 위해)입니다. – funerr

관련 문제