Diskuze: jak zjistit typ chyby při načítání webových stránek?
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 11 zpráv z 11.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Málo informací. Jaký je to framework a co znamená zamrzne?
Nevím, co je framework. Dělám ve visual studiu 2015. Mně stačí vědět, jak zjistím, jakou chybovou hlášku ta načítaná stránka vrátí. Pokud žádnou, tak najede document completed a je to v pořádku. Pokud však stránka vyhodí chybu (např. stránka nenalezena), tak to do document completed neskočí. Takže já bych potřeboval vědět, jak odečtu, v jakém stavu ta stránka skončila, tedy jakou chybu vyhodila.
No, jako jestli je to MVC, WebForms, nebo neco podobneho?
Mrkni se na metodu CreateSink(), pomocí ní se dostaneš k metodám a
událostem které nejsou přístupné z interface WebBrowseru (v podstatě si
tak rozšíříš tenhle wrapper).
K dispozici tak budeš mít mimo jiného i událost NavigateError.
Všechno, včetně ukázky je na WebBrowser.CreateSink Method ()
Spise by sis asi mel prvne projit zaklady a postupne si pridavat obtiznost, a ne se hned poustet do neceho, cemu vlastne ani nerozumis. Neni to mysleno zle, ale jako rada. Jinak zkus sem dat svuj kod, ktery zatim mas...
Já beru programování jinak, než zkušení programátoři. Pro mě je to pouhý prostředek, jak se dostat k nějakému výsledku. Takže nepotřebuji mít dokonalý kód, ošetřené všechny chyby atd. Jak mám výsledek, většinou už program nikdy nepoužiji. Nemusím se k výsledku dostat elegantně, rychle, s pěkným uživatelským prostředím atd. Klidně pustím program na celou noc, ať si to chroupe a mám ráno výsledek. Přitom šikovný programátor by udělal program, který to schroupne za pár minut. Ale mi jde fakt jen o ten výsledek. Programuji stylem puzzle. Skládám hotové kousky programů k sobě, přičemž nemusím rozumět detailům a tomu, jak daný kousek funguje.
V daném případě potřebuji zadat balík webových adres a získat adresy, kam jsou přesměrovávány.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Net;
using System.Diagnostics;
using System.Text.RegularExpressions;
namespace presmerovani
{
public partial class Form1 : Form
{
string cesta;
int pocitadlo = 0;
List<string> adresy;
List<string> vysledek;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
using (StreamReader sr = new StreamReader(@"D:\zadani.csv", System.Text.Encoding.Default))
{
string s;
adresy = new List<string>();
vysledek = new List<string>();
while ((s = sr.ReadLine()) != null)
{
adresy.Add(s);
}
}
timer1.Enabled = true;
}
private void timer1_Tick(object sender, EventArgs e)
{
webBrowser1.Size = new Size(this.Size.Width - 16, this.Size.Height - 100);
if (pocitadlo + 1 <= adresy.Count())
{
if (adresy[pocitadlo].Contains("www"))
{
vysledek.Add(adresy[pocitadlo]);
using (StreamWriter sw = new StreamWriter(@"D:\vysledek.csv", true, System.Text.Encoding.Default))
{
sw.WriteLine(adresy[pocitadlo]);
}
}
else
{
webBrowser1.Navigate(adresy[pocitadlo]);
timer1.Enabled = false;
}
pocitadlo++;
}
else
{
timer1.Enabled = false;
MessageBox.Show("Hotovo");
}
//timer1.Enabled = false;
}
private void webBrowser1_DocumentCompleted_1(object sender, WebBrowserDocumentCompletedEventArgs e)
{
//if(webBrowser1.Url.ToString() == adresy[pocitadlo -1])
//{
// timer1.Enabled = false;
//}
//else
//{
// textBox1.Text = webBrowser1.Url.ToString();
// vysledek.Add(textBox1.Text);
// using (StreamWriter sw = new StreamWriter(@"D:\vysledek.csv", true, System.Text.Encoding.Default))
// {
// sw.WriteLine(textBox1.Text);
// }
// timer1.Enabled = true;
//}
}
private void button1_Click(object sender, EventArgs e)
{
using (StreamWriter sw = new StreamWriter(@"D:\vysledek.csv", false, System.Text.Encoding.Default))
{
foreach (string polozka in vysledek)
{
sw.Write(polozka);
}
}
}
private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
//if (webBrowser1.Url.ToString() == adresy[pocitadlo - 1])
//{
// timer1.Enabled = false;
//}
//else
//{
// textBox1.Text = webBrowser1.Url.ToString();
// vysledek.Add(textBox1.Text);
// timer1.Enabled = true;
//}
if (webBrowser1.Url.ToString() == adresy[pocitadlo - 1])
{
timer1.Enabled = false;
}
else
{
textBox1.Text = webBrowser1.Url.ToString();
vysledek.Add(textBox1.Text);
using (StreamWriter sw = new StreamWriter(@"D:\vysledek.csv", true, System.Text.Encoding.Default))
{
sw.WriteLine(textBox1.Text);
}
timer1.Enabled = true;
}
}
}
}
Nebyl by na tvuj styl práce lepší skriptovací jazyk? Python, PHP, PERL..
Zobrazeno 11 zpráv z 11.