2012-06-18 18 views
7

Ho un file html memorizzato sul server. Ho il percorso URL qualcosa del genere: <https://localhost:9443/genesis/Receipt/Receipt.html >come ottenere url contenuto html in stringa in java

Voglio leggere il contenuto di questo file html che conterrà tag, dall'URL cioè il codice sorgente del file html.

Come posso fare questo? Questo è un codice lato server e non può avere un oggetto browser e non sono sicuro che l'utilizzo di un URLConnection sarebbe una buona opzione.

Quale dovrebbe essere la soluzione migliore ora?

+0

'String content = org.apache.commons.io.IOUtils.toString (nuovo URL (" https: // localhost: 9443/genesis/Receipt/Receipt.html ")," utf8 ");' –

risposta

2

risolto utilizzando primavera aggiunto il fagiolo al file di primavera di configurazione

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

quindi leggerlo nel mio metodo

 // 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

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

È possibile utilizzare l'InputStream in altri modi, non solo di stamparlo.

Naturalmente se avete il percorso del file locale, si può anche fare

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

è un codice lato server e mi stavo astenendo dall'usare URLConnection. Non sono sicuro se sarebbe un buon approccio. Che cosa ne pensi? –

+0

Questo non è il codice lato server, perché ti stai astenendo dall'usare URLConnection? –

+1

Se sai dove sono localmente i tuoi file, puoi anche usare 'FileInputStream' (vedi risposta estesa). –

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

che ne dici dell'URL del sito remoto? Il problema in realtà sulla posizione dello script – NPE

Problemi correlati