Domanda

Sto cercando di costruire una sorta di webservice sulle applicazioni Google.

Ora il problema è, ho bisogno di ottenere i dati da un sito web (HTML Raschiatura).

Gli sguardi richiesta come:

URL url = new URL(p_url);
con = (HttpURLConnection) url.openConnection();
InputStreamReader in = new InputStreamReader(con.getInputStream());
BufferedReader reader = new BufferedReader(in);

        String result = "";
        String line = "";
        while((line = reader.readLine()) != null)
        {
            System.out.println(line);
        }
        return result;

Ora App Engine mi dà l'eccezione follwing alla linea 3 °:

com.google.appengine.api.urlfetch.ResponseTooLargeException

Questo è perché il limite massimo è richiesta a 1 MB e il codice HTML totale dalla pagina è di circa 1.5MB.

Ora la mia domanda: Ho solo bisogno le prime 20 righe del codice HTML per raschiare. C'è un modo per ottenere solo una parte del codice HTML in modo che il ResponseTooLargeException non sarà gettato?

Grazie in anticipo!

È stato utile?

Soluzione

Risolto il problema utilizzando il basso livello di api URLFetch.

E impostando l'opzione allowtruncate true;

http://code.google.com/intl/nl-NL/appengine/docs/java/javadoc/com/google/appengine/api/urlfetch/FetchOptions.html

Fondamentalmente funziona in questo modo:

HTTPRequest request = new HTTPRequest(_url, HTTPMethod.POST, Builder.allowTruncate());
URLFetchService service = URLFetchServiceFactory.getURLFetchService();
HTTPResponse response = service.fetch(request);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top