Avatar billede _et Praktikant
05. juli 2005 - 22:01 Der er 11 kommentarer og
1 løsning

POST/GET - Læse/sende

Jeg skal bruge et eks. på hvordan jeg sender en POST fra codebehind og læser den på ny side.
Det samme skal jeg bruge til GET.

Helst C#
Avatar billede arne_v Ekspert
05. juli 2005 - 22:05 #1
koden er stort set identisk

du bruger (Http)WebRequest og sætter bare enten GET eller POST

jeg finder lige nogle eksempler
Avatar billede arne_v Ekspert
05. juli 2005 - 22:05 #2
GET - binær fil - gemmes til disk

        HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://www.eksperten.dk/img/elogo.png");
        HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
        string filename = Path.GetDirectoryName(Environment.GetCommandLineArgs()[0]) + "\\elogo.png";
        Stream f1 = resp.GetResponseStream();
        Stream f2 = new FileStream(filename, FileMode.CreateNew, FileAccess.Write);
        byte[] b = new byte[1000];
        int n;
        while((n = f1.Read(b, 0, b.Length)) > 0)
        {
            f2.Write(b, 0, n);
        }
        f2.Close();
        f1.Close();
        resp.Close();
Avatar billede arne_v Ekspert
05. juli 2005 - 22:06 #3
POST - tekst . hentes til string

        HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://arne/htbin/tell2");
        req.Method = "POST";
        req.ContentType = "application/x-www-form-urlencoded";
        StreamWriter post = new StreamWriter(req.GetRequestStream());
        post.Write("field1=value1&field2=value2");
        post.Close();
        HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
        Stream stm = resp.GetResponseStream();
        int c;
        string res = "";
        while((c = stm.ReadByte()) >= 0) {
            res += (char)c;
        }
        stm.Close();
        resp.Close();
Avatar billede arne_v Ekspert
05. juli 2005 - 22:08 #4
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
        Stream stm = resp.GetResponseStream();
        int c;
        string res = "";
        while((c = stm.ReadByte()) >= 0) {
            res += (char)c;
        }
        stm.Close();

kan iøvrigt laves nemmere som:

        StreamReader sr = new StreamReader(req.GetResponse().GetResponseStream());
        string line = sr.ReadToEnd();

men det er en detalje
Avatar billede arne_v Ekspert
05. juli 2005 - 22:10 #5
og et svar
Avatar billede _et Praktikant
05. juli 2005 - 22:15 #6
Det vil sige at jeg kan bruge de øverste til at lave upload sider med - ikke.

Men jeg skal kun bruge url'en/feltet
http://www.aspx?var1=main.aspx&var2=mail.aspx

string tmp = request.querystring("var1");
Avatar billede arne_v Ekspert
05. juli 2005 - 22:18 #7
fil upload er helt specielt !

ovenstående er A HREF og FORM / INPUT TYPE="TEXT" kompatible requests
Avatar billede _et Praktikant
05. juli 2005 - 22:25 #8
ok - jeg kan bare ikke lige gennemskue hvordan jeg fanger den enkelte var jeg vil have, i dine eksempler.

        StreamReader sr = new StreamReader(req.GetResponse().GetResponseStream());
        string line = sr.ReadToEnd();
i dette eks. vil url'en så ligge i "string line"?
Avatar billede arne_v Ekspert
05. juli 2005 - 22:33 #9
nej - den indeholde response fra den side man har kaldt

den side man kalder henter parametre helt normalt
Avatar billede _et Praktikant
05. juli 2005 - 22:38 #10
Kan du sige mig hvorfor jeg får følgende fejl på denne funktion der er kaldt fra page_load().

private void Frame_Status()
{
    Label1.Text = Request.QueryString("url");
    Label1.DataBind();
}

Fejl:
System.Web.HttpRequest.QueryString' denotes a 'property' where a 'method' was expected
Avatar billede arne_v Ekspert
05. juli 2005 - 22:41 #11
prøv:

Request.QueryString["url"];
Avatar billede _et Praktikant
05. juli 2005 - 22:44 #12
perfect
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