
Ergebnis 1 bis 5 von 5
-
Mich gibt's schon länger
- 25.12.2014, 18:39
- #1
Hallo Community und Frohe Weihnacht zunächst
ich nute gerade die freien Tage, um mir einen kleinen Web-Crawler als Universal-App zu Programmieren. Zunächst dachte ich, dass sollte ja nicht so kompliziert werden. Da habe ich mich anscheind getäuscht.
Um ein mal die Funktion zu verstehen wollte ich nur den HTML-Code einer Website in einer TextBox darstellen. Es scheitert immer daran, dass mir als Fehler ausgegeben wird, dass der String leer ist.
Kann mir vielleicht Jemand sagen, was der Fehler an diesem Code ist?
Auch über den weg
sourceCode = await (new System.Net.Http.HttpClient()).GetStringAsync("http://www.google.de/");
hat es nicht gekkaptt.
Sobald ich aber den Code mittels einen Breakpoint durchgegangen bin, konnte ich beobachten, wie der String SourceCode beschrieben wurde, aber beim ausgeben leer war und einen Fehler verursacht.
In System.ArgumentNullException ist eine Ausnahme vom Typ "mscorlib.dll" aufgetreten, doch wurde diese im Benutzercode nicht verarbeitet.
Zusätzliche Informationen: Value cannot be null.
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
// Die Elementvorlage "Leere Seite" ist unter http://go.microsoft.com/fwlink/?LinkId=234238 dokumentiert.
namespace Website_Crawler
{
/// <summary>
/// Eine leere Seite, die eigenständig verwendet werden kann oder auf die innerhalb eines Frames navigiert werden kann.
/// </summary>
public sealed partial class MainPage : Page
{
TextBox sourceCode;
public MainPage()
{
this.InitializeComponent();
this.NavigationCacheMode = NavigationCacheMode.Required;
Button getCode = new Button();
getCode.Height = 30;
getCode.Width = 50;
getCode.Content = "get Code";
Canvas.SetLeft(getCode, 100);
Canvas.SetTop(getCode, 100);
dieCanvas.Children.Add(getCode);
getCode.Click += new RoutedEventHandler(getCode_Click);
TextBox myTextBox = new TextBox();
myTextBox.Height = 100;
myTextBox.Width = 300;
myTextBox.Background = new SolidColorBrush(Colors.LightBlue);
Canvas.SetLeft(myTextBox, 100);
Canvas.SetTop(myTextBox, 150);
dieCanvas.Children.Add(myTextBox);
sourceCode = myTextBox;
}
private void getCode_Click(Object seder, RoutedEventArgs e)
{
downloadQuellcode meineSeite = new downloadQuellcode("http://www.google.de/");
sourceCode.Text = meineSeite.getSourceCode();
}
/// <summary>
/// Wird aufgerufen, wenn diese Seite in einem Rahmen angezeigt werden soll.
/// </summary>
/// <param name="e">Ereignisdaten, die beschreiben, wie diese Seite erreicht wurde.
/// Dieser Parameter wird normalerweise zum Konfigurieren der Seite verwendet.</param>
protected override void OnNavigatedTo(NavigationEventArgs e)
{
// TODO: Seite vorbereiten, um sie hier anzuzeigen.
// TODO: Wenn Ihre Anwendung mehrere Seiten enthält, stellen Sie sicher, dass
// die Hardware-Zurück-Taste behandelt wird, indem Sie das
// Windows.Phone.UI.Input.HardwareButtons.BackPressed-Ereignis registrieren.
// Wenn Sie den NavigationHelper verwenden, der bei einigen Vorlagen zur Verfügung steht,
// wird dieses Ereignis für Sie behandelt.
}
}
}
und meine Klasse
using System;
using System.Collections.Generic;
using System.Text;
using Windows.Web.Http;
namespace Website_Crawler
{
class downloadQuellcode
{
Uri myUri;
string sourceCode;
public downloadQuellcode(string url)
{
myUri = new Uri(url);
getSC();
}
private async void getSC()
{
HttpClient myClient = new HttpClient();
sourceCode = await myClient.GetStringAsync(myUri);
}
public string getSourceCode()
{
return sourceCode;
}
}
}
und wie gesagt, der String sourceCode bleibt immer leer.
Nutze Visual Studio 2013 Update 4
Vielen Dank
Agredo
-
Bin hier zuhause
- 25.12.2014, 19:34
- #2
Mit diesem simplen Beispiel, müsste es eigentlich funktionieren:
Code:using System; using Windows.Foundation; using Windows.Web.Http; var uri = new Uri("http://mypage.com/home.html"); var httpClient = new HttpClient(); try { var result = await httpClient.GetStringAsync(uri); myTextBox.Text = result.ToString(); } catch { // Exception handling hierher }
-
- 25.12.2014, 19:50
- #3
Gibt es schon http://www.httrack.com
Gesendet von iPad mit Tapatalk
-
Mich gibt's schon länger
- 25.12.2014, 20:10
- #4
Ich danke dir das Funktioniert soweit. Aber wie ich oben geschrieben habe habe ich eine neue Klasse erstellt. Wenn ich darin den Code ausgeben, erhalte ich wieder das Problem dass meineSeite.getSourceCode(); keinen wert enthält. Woran kann das liegen? Hat es was mit der async Funktion zu tun?
---------- Hinzugefügt um 21:10 ---------- Vorheriger Beitrag war um 21:07 ----------
Danke für die Antwort, aber es Hilft mir beim Programmieren nicht weiter, wenn ich nicht weiß wie es Funktioniert. Vielleicht hast du eine Antwort darauf, warum beim Aufrufen von meineSeite.getSourceCode(); die Zuweisung nicht klappt.
-
Bin hier zuhause
- 25.12.2014, 21:24
- #5
Hm, hast du denn mal alle Schritte debugged, also mit Breakpoints versehen und geschaut, ob ansonsten alles funktioniert? Wenns nur innerhalb der Klasse nicht funktioniert, muss da irgendwo das Problem liegen, aber ich kanns mir gerade auch nicht erklären.
Mfg
Ähnliche Themen
-
Listenerstellung mittels Barcode
Von gandalfnn im Forum Android AppsAntworten: 0Letzter Beitrag: 02.02.2011, 08:53 -
Entwickeln einer Applikation zur Darstellung von GPS Positionen auf einer Karte
Von Ufuk Uzun im Forum ProgrammierenAntworten: 8Letzter Beitrag: 15.08.2010, 11:34 -
Übertragung mittels Wireless
Von Elektryon im Forum PlaudereckeAntworten: 5Letzter Beitrag: 21.02.2007, 14:59 -
MP3 hören mittels BT-Headset
Von senzual im Forum HTC WizardAntworten: 1Letzter Beitrag: 21.08.2006, 08:56 -
Bluetooth Aktivierung mittels Softwaresteuerung
Von @lex&er im Forum Orange SPV Forum (SP)Antworten: 3Letzter Beitrag: 03.11.2005, 08:50
Pixel 10 Serie mit Problemen:...