C# tekst van een website krijgen

Status
Niet open voor verdere reacties.
Kwam ik ook achter toen ik het had gepost dat de helft onnodig was

[CPP] this.CookieCollection = filter.CookieManager.GetCookies(uri);
[/CPP]

Dat zit in de authenticate method
 
krijg je wel cookies terug?
heb je al geprobeerd websites aan te roepen waar je moet inloggen met deze cookies in plaats van ze op te slaan?
kijk je of de gebruiker juiste gegevens heeft ingevoerd?

dit is een snippet van code die ik gebruik
[CPP]if (response.StatusCode == HttpStatusCode.Ok)
{
var cookieCollection = filter.CookieManager.GetCookies(uri);

result = new AuthenticationResult(true, new Account(credentials.Username, true, cookieCollection));

OnSignedIn(result.Account);
}
else if (response.StatusCode == HttpStatusCode.Forbidden)
{
throw new InvalidCredentialsException("Your credentials were not valid.");[/CPP]

Ik zal even project starten, heb dit al een aantal maanden niet meer aangeraakt.

Wat voor error krijg je bij het opslaan? Ik zie bij debuggen ook dat er alleen een count property misschien moet je een nieuwe lijst maken met cookies en deze opslaan in plaats van de collection.
 
Laatst bewerkt:
Ja het lukt me om in te loggen en data op te halen van de site. Cookies krijg ik dus terug.
 
probeer eens zoiets:

[CPP]public HttpCookieCollection CookieCollection { get; set; }

private async Task SaveCookiesAsync()
{
var cookies = new List<HttpCookie>();

foreach (var cookie in this.CookieCollection)
cookies.Add(cookie);

var serializer = new DataContractSerializer(typeof(HttpCookieCollection));

using (var stream = await ApplicationData.Current.LocalFolder.OpenStreamForWriteAsync(XMLFILENAME, CreationCollisionOption.ReplaceExisting))
{
serializer.WriteObject(stream, cookies);
}
}[/CPP]



edit: typeof(List<HttpCookie>) gebruiken
 
Laatst bewerkt:
Deze errors krijg ik:

'AuthWebsiteDemo.WindowsPhone.exe' (CoreCLR: .): Loaded 'C:\windows\system32\SYSTEM.XML.NI.DLL'. Cannot find or open the PDB file.
'AuthWebsiteDemo.WindowsPhone.exe' (CoreCLR: .): Loaded 'C:\windows\system32\en-US\System.Runtime.Serialization.debug.resources.DLL'. Module was built without symbols.
A first chance exception of type 'System.Runtime.Serialization.InvalidDataContractException' occurred in SYSTEM.RUNTIME.SERIALIZATION.NI.DLL
A first chance exception of type 'System.Runtime.Serialization.InvalidDataContractException' occurred in mscorlib.ni.dll
A first chance exception of type 'System.Runtime.Serialization.InvalidDataContractException' occurred in mscorlib.ni.dll
 
var serializer = new DataContractSerializer(typeof(HttpCookieCollection));

=>

var serializer = new DataContractSerializer(typeof(List<HttpCookie>));
 
Naam zal niets uitmaken, kun je alles van maken.

Zelf gebruik ik nooit DataContractSerializer dus het kan zijn dat je attributes on properties moet plaatsen om deze te serializen, probeer eens json of een eigen class (met de gegevens van een cookie)
 
Hoe kan ervoor zorgen dat ik elke keer de datum van maandag de week erop krijg als 3-11-2014?
 
Probleem al opgelost! Heb alleen nog een vraagje ik wil een database maken met Uri schemes van apps en de app naam. Hoe kan ik dat doen en waar? En hoe ik in de app de database ophalen en die in een lijst zetten?
 
localstorage, waar je je xml dingen bijvoorbeeld hebt, maar in plaats van een database kun je dus ook gewoon in een xml/json bestandje opslaan
ook zou je dit xml/json op internet kunnen opslaan en downloaden als je hem nodig hebt, zo kun je dat bestandje updaten in plaats van steeds de app te updaten

wil je het in je app of beschikbaar voor alle apps en andere dingen?
 
Het bestandje is alleen maar nodig in 1 app. Ik heb nu een bestandje gemaakt en hoe kan ik dan dan een <td> uit dat bestandje halen zoals ik dat van sites heb gedaan?
En hoe kan ik een lijst toevoegen aan een ComboBox?
 
Als je het opslaat zoals je het later nodig hebt is het een stuk gemakkelijker, dus haal de html tags eruit voor je het opslaat. Anders moet je het weer in een htmldocument laden en parsen.
En een lijst toevoegen aan een combobox is hetzelfde als een listbox zoals je al eerder hebt gedaan, maar je hebt toch ook al een combobox gebruikt in je bierspel app?

Ik zou toch eens beginnen met het kijken naar viewmodels en databinding, dat maakt het koppelen aan een combobox ook een stuk eenvoudiger. (zoek naar MVVM (Model/View/ViewModel))
 
Ik heb nu een xml bestand maar daarin html code. Hoe bedoel je dat ik de html tags eruit moet halen? En hoe kan ik dat document laden en er een lijst van maken?
In mijn bierspel app had ik de items in xaml aan de combobox toegevoegd. Maar ik snap nu wel hoe het moet denk ik.
 
Als je alleen puur html hebt opgeslagen (de source van de pagina neem ik aan) dan zou je het gewoon als .txt kunnen opslaan, hoef je niets met xml te doen. Het laden is dan precies hetzelfde net als je de source hebt gedownload en het in een string hebt staan.

Alleen zou ik juist de dingen opslaan die je nodig hebt, niet de source. Anders moet je elke keer de dingen die je nodig hebt eruit vissen. Beter om dit 1x te doen.
 
ik heb er al uitgevist wat ik nodig heb

Ofja ik heb zelf een lijst in html gemaakt
 
Laatst bewerkt:
Wat ik bedoel is dat als je bijvoorbeeld een lijst data uit de source haalt, dat je de lijst serialized en opslaan in plaats van de html. Scheelt ruimte op de telefoon en tijd met en inlezen van het bestandje. (tenzij je puur html nodig hebt, ik nam aan dat je deze data in een combobox nodig had)
 
[XML]

<!DOCTYPE HTML>
<HTML>
<body>
<div>
<table>

<tr class="....." id=""/>
<tr class="Fancy" id="fancy:"/>
<tr class="Viber" id="viber:"/>
<tr class="Wikipedia" id="wikipedia:"/>
<tr class="Battery" id="battery:"/>
<tr class="Xbox Video" id="xboxvideo:"/>
<tr class="iFunny" id="ilold:"/>
<tr class="Xbox One SmartGlass" id="smartglass:"/>
<tr class="Vimeo" id="vimeo:"/>
<tr class="****h or Dare" id="tod:"/>
<tr class="Call of Duty Ghosts" id="cod-ghosts:"/>
<tr class="Film Closet" id="filmcloset:"/>
<tr class="Karaoke+" id="myplankaraokeplus:"/>
<tr class="BuzzFeed" id="bzfd:"/>
<tr class="Lolcats" id="lcats:"/>
<tr class="Pandora" id="pandora:"/>
<tr class="YouTube HD" id="youtube-hd-windowsphone8-ideacreator:"/>
<tr class="iHeartRadio" id="ihr:"/>
<tr class="Hot Music" id="musicapp-windowsphone8-ideacreator:"/>
<tr class="TuneIn Radio" id="tunein:"/>
<tr class="iMusic" id="myplanimusic:"/>
<tr class="Recorder Pro" id="recorder:"/>
<tr class="SoundClone" id="soundclone:"/>
<tr class="musiXmatch lyrics" id="mxm:"/>
<tr class="MusicTube" id="musictube:"/>
<tr class="MPAtool" id="mpatool:"/>
<tr class="MusicAmp Free" id="lme-sme923queum:"/>
<tr class="Listen" id="wp.listen.music:"/>
<tr class="Cloudoh" id="cloudoh:"/>
<tr class="iRecorder" id="myplanirecorder:"/>
<tr class="Random Music Player" id="randommusicplayer:"/>
<tr class="Cool Tiles" id="myplancooltiles:"/>
<tr class="PDF Reader" id="pdf:"/>
<tr class="File Explorer" id="goodexplorer:"/>
<tr class="UC Browerser" id="wap:"/>
<tr class="CloudSix" id="cloudsix:"/>
<tr class="Lync 2010" id="lync:"/>
<tr class="Lumia System Updater" id="musiXmatch lyrics player:"/>
<tr class="TypeViewer" id="qmatteoq:"/>
<tr class="File Downloader" id="ftp:"/>
<tr class="Evernote" id="evernote:"/>
<tr class="Calculator" id="calculator:"/>
<tr class="RapDialer" id="rapdialer:"/>
<tr class="WebApps" id="symgetgeh49:"/>
<tr class="Custom Tiles Maker" id="ctmkr:"/>
<tr class="Maxthon Browser" id="maxthon:"/>
<tr class="Cool Light" id="myplancoollight:"/>
<tr class="Torrent Buddy" id="magnet:"/>
<tr class="Cake Clock" id="alarmplus:"/>
<tr class="Super 8" id="myplansuper8:"/>
<tr class="SurfCude 3D Browser" id="surfcube:"/>
<tr class="627 .AM" id="sixtosevenam:"/>
<tr class="Phone System Updater" id="phonesystempusher:"/>
<tr class="Windows Phone Store" id="ms-windows-store:"/>
<tr class="Notebook Pro" id="myplannotepro:"/>
<tr class="Bing Food &amp; Drink" id="shazam:"/>
<tr class="OpenTable" id="opentable:"/>
<tr class="Groupon" id="groupon:"/>


</table>
</div>
</body>
</HTML>
[/XML]

En dan wil ik de class en het id ophalen
 
Laatst bewerkt:
Je kunt gewoon het bestand inlezen (naar een string) en een htmldocument laden zoals je dat altijd doet, maar dan zou ik bijvoorbeeld zoals je bij favorieten doet een class maken, en dat een lijst serializen naar een bestand, en deze laden als je hem nodig hebt. Dan krijg je meteen een lijst terug die je kunt gebruiken in plaats van html.

simple class (je data zijn protocols dacht ik)

[CPP]public class Protocol
{
public string Id { get; set; }
public string Name { get; set; }
}[/CPP]

(de serialize/de-serialize methods ken je ook al)


Beheer je zelf deze data of haal je deze ergens vandaan? Of heb je hem zelf zo gemaakt en opgeslagen?


Als je heb zelf maak zou ik niet in HTML maken (wat je hebt is niet bepaald xml)
xml zou je zoiets krijgen:
Code:
<?xml version="1.0" encoding="utf-8" ?>
<protocols>
	<protocol name="Wikipedia" uri="wikipedia://" />
	<protocol name="Nokia Music" uri="nokia-music:// " />
</protocols>
 
Laatst bewerkt:
Ik heb het zelf gemaakt, dus zal het in XML maken. En moet ik dan de deserialize method gebruiken die ik ook heb gebruikt bij het ophalen van opgeslagen data?[CPP]

try
{
var serializer = new DataContractSerializer(typeof(List<Protocols>));
var folder = ApplicationData.Current.LocalFolder;

using (var stream = await folder.OpenStreamForReadAsync(XMLFILENAME))
{
deserializedList = serializer.ReadObject(stream) as List<Protocols>;
if (deserializedList != null)
apps.ItemsSource = deserializedList;
}
}
catch
{
Debug.WriteLine("'{0}' not found in the local folder.", XMLFILENAME);
}[/CPP]
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan