Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    81

    [C#] Prendere una pagina dal Web

    Salve,
    usando il webrequest/webresponse sto cercando di prendere una pagina da un sito web. La cosa a volte va e a volte no...

    Volevo fare un sistema come il reload che c'è in ogni browser: dopo 20 secondi riparte la richiesta, per un totale di, per esempio, 5 volte. Alla 5 volta: Sito non disponibile.

    Ottengo la pagina passando dei dati con il POST.
    Pensavo di usare il Timeout assieme ad un IF e un contatore... ma i test che ho fatto non hanno dato buon esito... SUGGERIMENTI?

    Ecco il codice che ho fatto (che può sempre servire..):

    WebRequest HttpWReq=WebRequest.Create(PageURL);
    ASCIIEncoding encoding=new ASCIIEncoding();
    byte[] data = encoding.GetBytes(PostData);
    HttpWReq.ContentType = "application/x-www-form-urlencoded";
    HttpWReq.ContentLength = data.Length;
    HttpWReq.Method="POST";

    HttpWReq.Timeout=20000;

    Stream newStream=HttpWReq.GetRequestStream(); newStream.Write(data,0,data.Length);
    WebResponse wrs=HttpWReq.GetResponse();
    Stream strm=wrs.GetResponseStream();

    StreamReader htmlData = new StreamReader(strm);

    Saluti,
    Dz
    Murphy era un ottimista.

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    204
    Ma l'errore al quinto tentativo, è della tua pagina o quella del server remoto?

    Se è della tua pagina, devi aumentare il tempo di timeout per l'esecuzione della pagina, visto che con 5 tentativi con attese di 20 secondi l'una, vai oltre i 90 secondi di timeout di default dell'elaborazione della pagina.

    codice:
         <httpRuntime
           executionTimeout="120"
         />
    Ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    81
    Ciao,
    l'errore è della mia pagina: se dopo 20 secondi dopo la richiesta il serve non restituisce nulla/non risponde ritento un'altra connessione, questo fine a 5 volte. Poi, al quinto tentativo, faccio comparire un msg d'errore.

    Non vado oltre i 90 sec: ricomincio da capo la connessione per 5 volte...

    A volte le pagine che mi servono non arrivano: ma poi, se vado a controllare la loro presenza on-line, vedo che ci sono e che rispondono correttamente alle interrogazioni (dei form a cui vengono passati dei dati, io becco la pagina di ritorno). E' come se il WebRequest si impiantasse...

    Dz
    Murphy era un ottimista.

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    204
    Due suggerimenti:

    - inserisci il codice di richiesta all'interno di blocchi try catch per il controllo degli errori.
    - innalza il timeout di esecuzione pagina, che non è quello del web request.

    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.