Avatar billede shylle Nybegynder
24. juni 2005 - 12:43 Der er 4 kommentarer og
1 løsning

ServerXMLHTTP og HttpWebRequest

Jeg har et script skrevet i traditionel ASP, hvor der bruges ServerXMLHTTP til at lave requests til et remote site.

Jeg initialiserer objektet som Session objekt således i global.asa:

Dim srvXmlHttp
Set srvXmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP")
Set Session("srvXmlHttp") = srvXmlHttp
Set srvXmlHttp = Nothing

Grunden til jeg gør det på den måde er, at det remote site, som jeg sender requests til skal kunne huske de requests, der har været fra en given klient, og fortsætte en dens session.

Jeg oplever dog et problem, når jeg vil gøre det samme i ASP.NET, hvor jeg bruger HttpWebRequest. Her ved jeg ikke hvordan jeg får oprettet HttpWebRequest som session objekt.

Er der nogen, der ved hvordan dette gøres?
Avatar billede arne_v Ekspert
24. juni 2005 - 12:48 #1
du gør vel præcis det samme: gemmer i session ?

(jeg forstår iøvrigt ikke logikken)
Avatar billede shylle Nybegynder
24. juni 2005 - 13:04 #2
Hej Arne

Logikken er den at jeg har et API og en klient-applikation. Klient-applikationen, sender requests til API'et via ServerXMLHTTP og får XML tilbage.

Session-problematikken kommer ind i billedet på sider hvor jeg kalder API'et to gange. Første kald udfører en søgning og gemmer navne på temptabeller i API'ets session-objekt. Det andet kald har brug for at kunne nå de temptabel-navne og derfor skal ServerXMLHTTP-objektet initialiseres som Session("srvXmlHttp").

Nu hvor jeg skal have klient-applikationen porteret til .NET, er jeg dog ikke lige klar over hvordan jeg initialisere HttpWebRequest session-objekt.

Således initialiseres HttpWebRequest nu:
Dim myHttpWebRequest As HttpWebRequest = CType(WebRequest.Create(URL), HttpWebRequest)

Kan det gøres som session?
Avatar billede arne_v Ekspert
24. juni 2005 - 13:12 #3
Session("myHttpWebRequest") = myHttpWebRequest

??
Avatar billede shylle Nybegynder
30. juni 2005 - 13:33 #4
Der kom lige nogle andre ting i vejen, men nu har jeg fået løst problemet.

Det viste sig, at det ikke var nok at lægge HttpWebRequest'et i en session. Der skulle ligeledes sættes en cookiecontainer. Koden blev således:

Dim myHttpWebRequest As HttpWebRequest = CType(WebRequest.Create(URL), HttpWebRequest)

If Session("Cookies") Is Nothing Then
    Dim Cookies As New CookieContainer()
    Session("Cookies") = Cookies
End If

Session("myHttpWebRequest") = myHttpWebRequest
Session("myHttpWebRequest").CookieContainer = Session("Cookies")

Læg et svar, Arne, så får du points'ne
Avatar billede arne_v Ekspert
30. juni 2005 - 13:36 #5
ok
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