Avatar billede baitianlong Nybegynder
03. marts 2010 - 15:47 Der er 2 kommentarer og
1 løsning

Send HTTP Post og redirecte

Jeg proever at goere det samme som de goer her, naar man klikker paa 'Visit Airasia' Altsaa gaa til en side hvor datoer allerede er valgt og man blot skal vaelge fly:

http://www.momondo.com/Redirect.aspx?Supplier=AirAsia&Orig=KUL&Dest=HKG&ReturnTrip=false&DepartDate=10/03/10&Price=78&Currency=EUR&QuoteDate=03/03/10&QuoteTime=923&ref=result&pos=1

Jeg har sniffet til Post data og Cookies og proevet at genskabe alt det noedvendige, men jeg lander alligevel paa en error side.
Er der nogen, der kan hjaelpe med dette?

Her er min kode, som ligger i en codebehind til en ellers "tom" aspx side:

protected void Page_Load(object sender, EventArgs e)
        {
            string _event = "search";
            string _module = "SB";
            string _page = "SEARCH";
            string _language = "EN";
            int _travel = 2;
            string _from1 = "KUL";
            string _to1 = "HKG";
            int _departDay1 = 10;
            int _departMonth1 = 201003;
            int _departDay2 = 15;
            int _departMonth2 = 201003;
            int _ADULT = 1;
            int _defaultADULT = -1;
            int _INFANT = 0;
            int _defaultINFANT = -1;
            string _toCity1 = "HKG";
            string _toCity2 = "???";
            int _numberMarkets = 2;

            Response.Cookies.Add(new HttpCookie("__utma", "48644473.532705006.1267625373.1267625373.1267625373.1"));
            Response.Cookies.Add(new HttpCookie("__utmc", "48644473"));
            Response.Cookies.Add(new HttpCookie("__utmz", "48644473.1267625373.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)"));
            Response.Cookies.Add(new HttpCookie("__utmv", "48644473.momondo"));
           
            Response.Write("<html><head></head><body onload\"document.forms[0].submit()\">");
            Response.Write("<form action=\"http://booking.airasia.com/skylights/cgi-bin/skylights.cgi\" method=\"post\">");
            Response.Write("<input type=\"hidden\" name=\"event\" value=\"" + _event + "\" />");
            Response.Write("<input type=\"hidden\" name=\"module\" value=\"" + _module + "\" />");
            Response.Write("<input type=\"hidden\" name=\"page\" value=\"" + _page + "\" />");
            Response.Write("<input type=\"hidden\" name=\"language\" value=\"" + _language + "\" />");
            Response.Write("<input type=\"hidden\" name=\"travel\" value=\"" + _travel + "\" />");
            Response.Write("<input type=\"hidden\" name=\"from1\" value=\"" + _from1 + "\" />");
            Response.Write("<input type=\"hidden\" name=\"to1\" value=\"" + _to1 + "\" />");
            Response.Write("<input type=\"hidden\" name=\"departDay1\" value=\"" + _departDay1 + "\" />");
            Response.Write("<input type=\"hidden\" name=\"departMonth1\" value=\"" + _departMonth1 + "\" />");
            Response.Write("<input type=\"hidden\" name=\"departDay2\" value=\"" + _departDay2 + "\" />");
            Response.Write("<input type=\"hidden\" name=\"departMonth2\" value=\"" + _departMonth2 + "\" />");
            Response.Write("<input type=\"hidden\" name=\"ADULT\" value=\"" + _ADULT + "\" />");
            Response.Write("<input type=\"hidden\" name=\"defaultADULT\" value=\"" + _defaultADULT + "\" />");
            Response.Write("<input type=\"hidden\" name=\"INFANT\" value=\"" + _INFANT + "\" />");
            Response.Write("<input type=\"hidden\" name=\"defaultINFANT\" value=\"" + _defaultINFANT + "\" />");
            Response.Write("<input type=\"hidden\" name=\"toCity1\" value=\"" + _toCity1 + "\" />");
            Response.Write("<input type=\"hidden\" name=\"toCity2\" value=\"" + _toCity2 + "\" />");
            Response.Write("<input type=\"hidden\" name=\"numberMarkets\" value=\"" + _numberMarkets + "\" />");
            Response.Write("</form>");
            Response.Write("</body></html>");
        }
Avatar billede janus_007 Nybegynder
03. marts 2010 - 17:44 #1
Der er en del ting du skal have styr på her. For det første koder du gammeldags ASP i ASP.NET, lad være med det, dvs. drop alle de response.write mv. det komplicerer tingene unødigt.

Anyway... Du skal sørge for at din request er magen til den der bliver sat fra Momondos side, brug Fiddler el-lign. til at finde den. Og så er det bare at efterligne.... Det jeg lige studser over er at du mangler en session cookie.
Avatar billede baitianlong Nybegynder
04. marts 2010 - 01:46 #2
Jeg bruger lige præcis fiddler til at kigge paa deres request og de sender ikke et JSESSIONID med. Jeg kan ikke se nogen forskel fra deres request til mit. Det er derfor jeg soeger hjaelp her.
Avatar billede baitianlong Nybegynder
04. marts 2010 - 08:47 #3
Naa, jeg har faaet det til at virke. Jeg skulle lige justere parametrene lidt :)
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
Kurser inden for grundlæggende programmering

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