HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Linkek helyességének ellenőrzése programból


Példaprogram letöltése

10095 bájt

Gyakran lehet szükség arra, hogy egy adott URL-ről eldöntsük, létezik-e vagy sem, vagyis hogy a címmel reprezentált erőforrás elérhető-e vagy sem. Ezzel a módszerrel elkerülhető, hogy törött, használhatatlan linkek tömkelegével tűzdeljük tele weboldalunkat. Cikkünkben elkészítünk egy gyakorlati példát arra, hogy miként tehetjük ezt meg saját alkalmazásunkból.

A példához szükséges az URLDb adatbázis, melyet a mellékelt Run.cmd BATCH állomány lefuttatásával hozhatunk létre. Csak arra kell ügyelni, hogy az URLDb.sql parancsállomány a BATCH állománnyal azonos mappában legyen. Az URLDb.sql parancsállomány 5. sorában adja meg helyesen a létrehozandó adatbázisfájlok mappájának nevét és elérési útvonalát.
A mellékelt állományok segítségével létrehozott URLDb adatbázis Table1 táblájában tároljuk az ellenőrzendő linkeket, a tábla Link oszlopában. Az alkalmazásunk lekérdezi azokat az URL-eket, melyek rekordjaiban a State oszlop értéke 1, és ezeket eltárolja egy DataTable (urldt) objektumban. Erre szolgál az URLQuery metódusunk.
private void URLQuery()
{
  adapter = new SqlDataAdapter("SELECT Link FROM Table1 WHERE State = 1",sqlConnection1);
  adapter.Fill(urldt);
}
A MŰVELET gomb megnyomásával elindítható az ellenőrzés, vagyis a hibás (törött) linkek kiszűrése. Erre a System.Net névtér osztályait használjuk fel, vagyis küldünk egy HTTP kérést az URL-ekre. Ehhez szükségünk van egy WebRequest objektumra a kérés elküldéséhez, és egy WebResponse objektumra a válasz fogadása érdekében.
WebRequest request = null;
WebResponse response = null;
Egy ciklussal végigmegyünk a DataTable rekordjain, és a linkeket átadjuk paraméterként a WebRequest osztály statikus Create metódusának.
for(int i=0;i<urldt.Rows.Count;i++)
{
  try
  {
    link = (string)urldt.Rows[i]["Link"];
    label3.Text = link;
    request = WebRequest.Create(link); 
    response = request.GetResponse();
  }
Amennyiben a kérés által megcélzott URL nem valós, akkor a kérés hibát eredményez, melyet elkapunk, és a hibás link karakterláncát a Form ListBox kontroljában megjelenítjük.
  catch
  {
    listBox1.Items.Add(link);
  }
A művelet végén lezárjuk a kapcsolatokat, és a következő linket vizsgáljuk.
  finally
  {
    response.Close();
    request.Abort();
    ...
A folyamat alakulását egy ProgressBar kontrollal jelezzük.

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2003 évkönyv 636. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |