2012-06-18 10 views
7

Mam plik html przechowywany na serwerze. Mam ścieżkę adresu URL podobną do tej: <https://localhost:9443/genesis/Receipt/Receipt.html >jak uzyskać zawartość html url na ciąg w java

Chcę przeczytać zawartość tego pliku html, który zawierałby znaczniki, z adresu URL, np. Kod źródłowy pliku html.

Jak mam to zrobić? To jest kod po stronie serwera i nie można mieć obiektu przeglądarki i nie jestem pewien, czy użycie opcji URLConnection byłoby dobrym rozwiązaniem.

Jakie powinno być teraz najlepsze rozwiązanie?

+0

'Treść treściowa = org.apache.commons.io.IOUtils.toString (nowy adres URL (" https: // localhost: 9443/genesis/Receipt/Receipt.html ")," utf8 ");' –

Odpowiedz

2

Rozwiązano to za pomocą sprężyny dodał fasolkę do pliku wiosna config

<bean id = "receiptTemplate" class="org.springframework.core.io.ClassPathResource"> 
    <constructor-arg value="/WEB-INF/Receipt/Receipt.html"></constructor-arg> 
    </bean> 

następnie przeczytaj w moim metodzie

 // read the file into a resource 
     ClassPathResource fileResource = 
      (ClassPathResource)context.getApplicationContext().getBean("receiptTemplate"); 
     BufferedReader br = new BufferedReader(new FileReader(fileResource.getFile())); 
     String line; 
     StringBuffer sb = 
      new StringBuffer(); 

     // read contents line by line and store in the string 
     while ((line = 
      br.readLine()) != null) { 
      sb.append(line); 
     } 
     br.close(); 
     return sb.toString(); 
0

Dla exemple:

 URL url = new URL("https://localhost:9443/genesis/Receipt/Receipt.html"); 
     URLConnection con = url.openConnection(); 
     BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); 
     String l; 
     while ((l=in.readLine())!=null) { 
      System.out.println(l); 
     } 

Można użyć InputStream w inny sposób, a nie tylko jego drukowania.

Oczywiście jeśli masz ścieżkę do pliku lokalnego, można również zrobić

InputStream in = new FileInputStream(new File(yourPath)); 
+0

this jest kodem po stronie serwera i powstrzymywałem się od używania metody URLConnection. Nie jestem pewien, czy to byłoby dobre podejście. Co o tym myślisz? –

+0

To nie jest kod po stronie serwera, dlaczego powstrzymujesz się od używania metody URLConnection? –

+1

Jeśli wiesz, gdzie są twoje pliki lokalnie, możesz również użyć 'FileInputStream' (zobacz rozszerzoną odpowiedź). –

0
import java.net.*; 
import java.io.*; 

//... 

URL url = new URL("https://localhost:9443/genesis/Receipt/Receipt.html"); 
url.openConnection(); 
InputStream reader = url.openStream(); 
8
import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.net.MalformedURLException; 
import java.net.URL; 
import java.net.URLConnection; 

public class URLConetent{ 
    public static void main(String[] args) { 

     URL url; 

     try { 
      // get URL content 

      String a="http://localhost:8080//TestWeb/index.jsp"; 
      url = new URL(a); 
      URLConnection conn = url.openConnection(); 

      // open the stream and put it into BufferedReader 
      BufferedReader br = new BufferedReader(
           new InputStreamReader(conn.getInputStream())); 

      String inputLine; 
      while ((inputLine = br.readLine()) != null) { 
        System.out.println(inputLine); 
      } 
      br.close(); 

      System.out.println("Done"); 

     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

    } 
} 
+0

Co powiesz na zdalny adres URL witryny? Problem faktycznie w lokalizacji skryptu – NPE

Powiązane problemy