Avatar billede doomstone-dk- Nybegynder
09. maj 2008 - 18:34 Der er 9 kommentarer og
1 løsning

webreader med cookies/sessions

Jeg er ved at lave en class som skal bruges til at læse hjemmeside.

Men jeg har et lille problem, når der bliver sat cookies og sessions skal den huske dem. men jeg kan simpelhen ikke finde ud af hvordan jeg kan gøre det :( en der kan hjælpe?



  public class webReader
    {
        private WebClient client = new WebClient();

        public webReader()
        {
            client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
            Console.WriteLine("Web Reader, Class loadet, running as Mozilla/4.0");
        }

        public string Read(string URL)
        {
            try
            {
                Stream data = client.OpenRead(URL);
                StreamReader reader = new StreamReader(data);
                string s = reader.ReadToEnd();
                data.Close();
                reader.Close();
                return s;
            }
            catch (WebException exp)
            {
                Console.WriteLine(exp.Message, "Exception");
                return "";
            }
        }
        public string Read(string URL, string posts)
        {
            client.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
            byte[] byteArray = Encoding.ASCII.GetBytes(posts);
            byte[] responseArray = client.UploadData(URL, "POST", byteArray);
           
            return Encoding.ASCII.GetString(responseArray);
        }
    }
Avatar billede arne_v Ekspert
09. maj 2008 - 18:50 #1
Du skal bruge en CookieContainer - den samme paa multiple requests !
Avatar billede doomstone-dk- Nybegynder
09. maj 2008 - 19:14 #2
Ja, det læste jeg også lidt om, men kan ikke lige finde ud af hvordan dan bruges sammen med WebClient :(
Avatar billede arne_v Ekspert
09. maj 2008 - 19:37 #3
Du skal nok erstatte WebClient med HttpWebRequest/HttpWebResponse
Avatar billede doomstone-dk- Nybegynder
09. maj 2008 - 21:47 #4
Må ærligt sige at jeg er rimelig ny til det og har prøve at få HttpWebRequest til at virker, men det funker narda :(
Avatar billede arne_v Ekspert
10. maj 2008 - 02:06 #5
Prøv og post lidt kode.

Det er forhåbentligt ikke en ASP.NET side du forsøget at logge ind på (ASP.NET er
et mareridt at poste til).
Avatar billede doomstone-dk- Nybegynder
11. maj 2008 - 17:35 #6
Nej, det er en php side, har et lille side projekt sammen med en ven hvor vi vil lave en client til ogames :D
Avatar billede arne_v Ekspert
11. maj 2008 - 19:08 #7
Super simpelt eksempel (bl.a. fordi serveren tillader login via GET):

using System;
using System.IO;
using System.Net;

namespace E
{
    public class MainClass
    {
        public static string GetContent(string url, CookieContainer session)
        {
            HttpWebRequest wr = (HttpWebRequest)WebRequest.Create(url);
            wr.CookieContainer = session;           
            string html = (new StreamReader(wr.GetResponse().GetResponseStream())).ReadToEnd();
            return html;
        }
        public static void Main(string[] args)
        {
            CookieContainer session = new CookieContainer();
            string login = GetContent("http://localhost:8080/logintest/login.jsp?username=arne&password=hemmeligt", session);
            Console.WriteLine(login);
            string other = GetContent("http://localhost:8080/logintest/other.jsp", session);
            Console.WriteLine(other);
        }
    }
}
Avatar billede doomstone-dk- Nybegynder
13. maj 2008 - 08:45 #8
Ok ser lige på den list sener idag :D
Avatar billede doomstone-dk- Nybegynder
28. maj 2008 - 20:41 #9
Det ser ud til at virker, kan du ikke skrive noget som et svar?
Avatar billede arne_v Ekspert
28. maj 2008 - 22:53 #10
kommer her
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester