PB Webresponse URGENT!!!!!!!!!!!!!!!!!!!!!!!

Résolu
yanis7518 Messages postés 283 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 9 juillet 2010 - 9 janv. 2006 à 14:33
yanis7518 Messages postés 283 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 9 juillet 2010 - 9 janv. 2006 à 14:42
Salut

voila j'ai un programme qui doit recuperer des infomrations dans des fichiers texte et se connecter a un site web pour y recuperer des infos

j'utilise des thread car mon appli doit gerer en meme tps des fichiers dans 2 dossiers differents.
Mon pb est que la connection et le traitement se fai pour le 1er fichiers de chaque dossier mais ensuite il me met un time out kelk1 aurait-il une solution????

Voila mon code pour + d'explication



private
void btnStart_Click(
object sender,
EventArgs e)


{


System.Threading.
ThreadPool.QueueUserWorkItem(
new System.Threading.
WaitCallback(
this.SearchFile));


}



private
void SearchFile(
object arg)


{



Sett.DB =
new
OleDbConnection();



Sett.DB.ConnectionString =
@"Provider=Microsoft.Jet.OLEDB.4.0;" +



@"Data source= " +
Sett.Path +
"\\Sniffer.mdb";



Sett.DB.Open();



DirectoryInfo CDdir =
new
DirectoryInfo(
Sett.DirCD);



Sett.CDfic = CDdir.GetFiles(
"*.txt");



DirectoryInfo Artdir =
new
DirectoryInfo(
Sett.DirArt);



Sett.Artfic = Artdir.GetFiles(
"*.txt");



Thread CDthread =
new
Thread(
new
ThreadStart(Traitement));



Thread Artthread =
new
Thread(
new
ThreadStart(TraitementArt));


CDthread.Start();


Artthread.Start();


CDthread.Join();


Artthread.Join();





MessageBox.Show(
"Fin");



Sett.DB.Close();


}



private
void Traitement()


{



StreamReader sr =
null;



if (
Sett.CDfic.Length > 0)


{



//Recherche des fichiers contenu dans le dossier



for (
int i = 0; i <
Sett.CDfic.Length; i++)


{



if (
Sett.CDfic[i].CreationTime <
DateTime.Now)


{


sr =
new
StreamReader(
Sett.CDfic[i].OpenRead());



Sett.CDline = sr.ReadLine();


CDParserHTML();


sr.Close();


}


}


}


}



private
void CDParserHTML()


{



string url =
null;



string flux;



string flux1 =
null;



int cpt = 0;



int index = 0;



WebResponse CDwrs =
null;



WebRequest CDwrq =
WebRequest.Create(
Sett.urlCDFnac.Replace(
"RECHERCHE",
Regex.Split(
Sett.CDline,
"\t").GetValue(1).ToString()));



try


{


CDwrs = CDwrq.GetResponse();



if (
Regex.Match(CDwrs.ResponseUri.ToString(),
"noResult.aspx",
RegexOptions.IgnoreCase).Success)


{



//inserer le code bar13 l'album le nom du ou des artistes et l'url vide


webBrowser1.Navigate(CDwrs.ResponseUri.ToString());


url =
"";


}



if (
Regex.Match(CDwrs.ResponseUri.ToString(),
"album.aspx",
RegexOptions.IgnoreCase).Success)


{


webBrowser1.Navigate(CDwrs.ResponseUri.ToString());


url = CDwrs.ResponseUri.ToString();


}



if (
Regex.Match(CDwrs.ResponseUri.ToString(),
"searchCategoryResult.aspx?",
RegexOptions.IgnoreCase).Success)


{



Encoding encode = System.Text.
Encoding.GetEncoding(
"utf-8");



StreamReader readStream =
new
StreamReader(CDwrs.GetResponseStream(), encode);



while ((flux = readStream.ReadLine()) !=
null)


{


cpt =
Regex.Matches(flux,
">" +
Regex.Split(
Sett.CDline,
"\t").GetValue(1).ToString() +
"<",
RegexOptions.IgnoreCase).Count;



if (cpt == 1)


{



while ((flux = readStream.ReadLine()) !=
null)


{


cpt =
Regex.Matches(flux,
">" +
Regex.Split(
Sett.CDline,
"\t").GetValue(2).ToString() +
"<",
RegexOptions.IgnoreCase).Count;



if (cpt == 1)


{



//inserer le code bar13 l'album le nom du ou des artistes et l'url


index = flux1.Length - (flux1.IndexOf(
"http") + 2);


url = flux1.Substring(flux1.IndexOf(
"http"), index);


webBrowser1.Navigate(url);


}


}


}


flux1 = flux;


}
//fin while


readStream.Close();


}


InsertCD(url);


}



catch (
Exception ex)


{



//MessageBox.Show(ex.Message);


}


}



private
void TraitementArt()


{



StreamReader Artsr =
null;



if (
Sett.Artfic.Length > 0)


{



//Recherche des fichiers contenu dans le dossier



for (
int i = 0; i <
Sett.Artfic.Length; i++)


{



if (
Sett.Artfic[i].CreationTime <
DateTime.Now)


{


Artsr =
new
StreamReader(
Sett.Artfic[i].OpenRead());



Sett.ArtLine = Artsr.ReadLine();


ArtFct();


Artsr.Close();


}


}


}


}



private
void ArtFct()


{



string urlArt =
null;



WebResponse wrs =
null;



WebRequest wrq =
WebRequest.Create(
Sett.urlArtFnac.Replace(
"RECHERCHE",
Regex.Split(
Sett.ArtLine,
"\t").GetValue(1).ToString()));



try


{


wrs = wrq.GetResponse();



if (
Regex.Match(wrs.ResponseUri.ToString(),
"noResult.aspx",
RegexOptions.IgnoreCase).Success)


{



//inserer le code bar13 l'album le nom du ou des artistes et l'url vide


webBrowser2.Navigate(wrs.ResponseUri.ToString());


urlArt =
"";


}



else


{


urlArt = wrs.ResponseUri.ToString();


webBrowser2.Navigate(wrs.ResponseUri.ToString());


}


InsertArt(urlArt);


}



catch (
Exception ex)


{


}


}

1 réponse

yanis7518 Messages postés 283 Date d'inscription mercredi 7 décembre 2005 Statut Membre Dernière intervention 9 juillet 2010 3
9 janv. 2006 à 14:42
c bon j'ai trouver c'etait tout bete il manquai je ne fermai pa les webresponse

il fau ajouter CDwrs.Close();
thx
3
Rejoignez-nous