C# tekst van een website krijgen

Status
Niet open voor verdere reacties.
[CPP]
public async Task<List<NieuwePunten>> DownloadPunten(Account account)
{
var url = string.Format("https://www.somtoday.nl/willibrord/home/news&windowsize=45?5");

using (var filter = new HttpBaseProtocolFilter())
{
foreach (Cookie cookie in account.Cookies)
{
filter.CookieManager(cookie);
}


using (var client = new Windows.Web.Http.HttpClient(filter))
{
client.DefaultRequestHeaders.UserAgent.ParseAdd("Mozilla/5.0 (Windows NT 6.3; WOW64; rv:29.0) Gecko/20100101");
var source = await client.GetStringAsync(new Uri(url));
var doc = CreateDocument(source);

var lijst = new List<NieuwePunten>();

var resultNodes = SelectNode(doc.DocumentNode, "div", "id", "idbc")
.Descendants("div");

foreach (var resultRow in resultNodes)
{
try
{

var Cijfernode = SelectNode(resultRow, "b", "class", "normal");
var cijfer = SelectContent(Cijfernode);



lijst.Add(new NieuwePunten(cijfer));

Debug.WriteLine("\t\t Found Spellen: [{0}]", cijfer);
}
catch (Exception ex)
{
Debug.WriteLine("\t\t Error getting spellen: [{0}]", ex.Message);
}

}

return lijst;
}
}
}
[/CPP]

Hier geeft ie een error bij foreach en bij Cookiecollection
 
Cookiemanager is geen method, maar een class. Gebruik de method .SetCookie(cookie); zoals je in de voorbeeld code kunt zien dat er .GetCookie wordt gebruikt om de cookies te verzamelen.
 
de regel: foreach (Cookie cookie in account.Cookies) moet zijn foreach (HttpCookie cookie in account.Cookies)

mogelijk kun je ook het 'var' gebruiken daar in plaats van httpcookie
 
Laatst bewerkt:
De app crasht nu hier

[CPP] var source = await client.GetStringAsync(new Uri(url));
var doc = CreateDocument(source);[/CPP]
 
Dus dan crasht hij bij 'var doc = CreateDocument(source);'
Dan moet je de CreateDocument method even debuggen.

Ik dacht de 'source' is mogelijk 'null'.
 
Dan moet je even terug naar de inlog method want deze is dan niet juist.

Als je in je browser naar 'https://www.somtoday.nl/willibrord/home' gaat dan ga je naar de inlog pagina als je geen cookies in je browser hebt.
Dus je moet de juiste cookies ophalen en dit kan ik niet goed testen.


In de browser kun je ziet wat er gebeurt als je wilt inloggen, maar ik zie natuurlijk nooit de response bij juiste inlog etc en kan er niet mee klungelen.

v8d9xz.png


Toen ik dit voor het eerst deed was het ook trial en error om alles goed te krijgen, en gebruikte ik wireshark network sniffer.



Ik zou het eens blijven proberen, ik zal intussen eens kijken welke code ik uit mijn project kan gebruiken om je een werkend voorbeeld te geven bij een site waar je zelf gewoon een account kunt maken om te testen.
 
[CPP] public async Task<Account> Authenticate(string username, string password)
{
Debug.WriteLine("dit is het wachtwoord", password);
Debug.WriteLine("dit is de gebruikersnaam", username);[/CPP]

hier geeft ie in de debugger geen password en username weer

terwijl ik ze wel doorstuur

[CPP] var authenticateservice = new AuthenticationService();

var account = await authenticateservice.Authenticate(gebruikersnaam.Text, wachtwoord.Text);

try
{
var downloader = new Downloader();
var lijst = await downloader.DownloadPunten(account);
label.ItemsSource = lijst;

}[/CPP]
 
Ik heb nog geen tijd gehad om het voorbeeld te maken. Mogelijk morgen of maandag avond.

wat betreft de debug lines:
Je mist een {0} om de parameter in de string te zetten: Debug.WriteLine("dit is het wachtwoord: {0}", password);
 
En moet ie de cookies niet van de authuri afhalen ipv de BaseUri?

[CPP]var cookieCollection = filter.CookieManager.GetCookies(_authUri);[/CPP]
 
Laatst bewerkt:
Cookies komen gewoon van de host af (voor zover ik het heb gebruikt)
En dat van de 'password_1402758301797' als die steeds anders is zal zeker meetellen dus dat moet eerst van de website geplukt worden.

Ik heb nog geen tijd gehad om voorbeeldje te maken, maar vanavond heb ik wel tijd denk ik.
 
http://1drv.ms/SWsECk (AuthWebsiteDemo)

Simpel gehouden, valid user/pass voor testen (een test account)
Test maar wat met fout user/pass en debug maar eens wat dingen, ook kun je de website bekijken en met die credentials inloggen en eens kijken naar het netwerk verkeer etc.
 
Laatst bewerkt:
Ik probeer nu van deze site data te halen http://csgo-stats.com/han_tom/
maar de source van de site wordt niet goed gedownload. Hoe los ik dit op?

Als ik in de browser van VS 2013 kijk dan kan ie de website ook niet goed openen
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan