5/14/2012

How to Post data in C# . NET HttpWebRequest

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Net;

namespace ConsoleApplication1
{
    class Class1
    {
        public string Post(string url, string postData)
        {
            string vystup = null;
            try
            {
                //Our postvars
                byte[] buffer = Encoding.ASCII.GetBytes(postData);
                //Initialisation, we use localhost, change if appliable
                HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create(url);
                //Our method is post, otherwise the buffer (postvars) would be useless
                WebReq.Method = "POST";
                //We use form contentType, for the postvars.
                WebReq.ContentType = "application/x-www-form-urlencoded";
                //The length of the buffer (postvars) is used as contentlength.
                WebReq.ContentLength = buffer.Length;
                //We open a stream for writing the postvars
                Stream PostData = WebReq.GetRequestStream();
                //Now we write, and afterwards, we close. Closing is always important!
                PostData.Write(buffer, 0, buffer.Length);
                PostData.Close();
                //Get the response handle, we have no true response yet!
                HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse();
                //Let's show some information about the response
                Console.WriteLine(WebResp.StatusCode);
                Console.WriteLine(WebResp.Server);

                //Now, we read the response (the string), and output it.
                Stream Answer = WebResp.GetResponseStream();
                StreamReader _Answer = new StreamReader(Answer);
                vystup = _Answer.ReadToEnd();

                //Congratulations, you just requested your first POST page, you
                //can now start logging into most login forms, with your application
                //Or other examples.
            }
            catch (Exception ex)
            {
                Console.Write(ex.Message);
            }
            return vystup.Trim() + "\n";

        }
    }
}

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Class1 cls1 = new Class1();
            string sResponse = cls1.Post(@"http://test.webjet.com.au/webjettsatrial/unauth.aspx", @"PFPageID=FlightFinderTab&PFLayoutID=Layout&__EVENTTARGET=&__EVENTARGUMENT=&__LASTFOCUS=&__VIEWSTATE=%2FwEPDwUJNjEyNDMwODIwD2QWAgIBD2QWAgIJD2QWAmYPZBYCZg9kFgICBw9kFgJmD2QWEmYPDxYCHgdWaXNpYmxlaGQWAmYPZBYCZg9kFgICAw8PFgIeBFRleHQFAjMwZGQCAQ8PFgIfAGhkZAIEDxYCHwBoZAIGDw8WAh8AaGRkAgkPDxYCHwBoZGQCCg8PFgIfAGhkFgQCAQ8PFgIfAGhkZAIFDxYCHwEFDDEzMDAgMTM3IDczN2QCDA8WAh8AaGQCDQ8WAh8AaGQCDg8WAh8AaGQYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFhkFKENvbnRlbnRWaWV3JFBhZ2VMYXlvdXQkVG9wTmF2JGltZ1dlYk1haWwFJUNvbnRlbnRWaWV3JFBhZ2VMYXlvdXQkVG9wTmF2JEltZ0xvZ28FRkNvbnRlbnRWaWV3JFBhZ2VMYXlvdXQkRmxpZ2h0RmluZGVyVGFiJG1udVN1Yk5hdmlnYXRpb25Vc2MkaW1nTGVmdE1lbnUFVUNvbnRlbnRWaWV3JFBhZ2VMYXlvdXQkRmxpZ2h0RmluZGVyVGFiJEhvbWVwYWdlVGFicyRGbGlnaHRzVGFiJHBubFRyaXBUeXBlJFRyaXBUeXBlIzAFVUNvbnRlbnRWaWV3JFBhZ2VMYXlvdXQkRmxpZ2h0RmluZGVyVGFiJEhvbWVwYWdlVGFicyRGbGlnaHRzVGFiJHBubFRyaXBUeXBlJFRyaXBUeXBlIzEFVUNvbnRlbnRWaWV3JFBhZ2VMYXlvdXQkRmxpZ2h0RmluZGVyVGFiJEhvbWVwYWdlVGFicyRGbGlnaHRzVGFiJHBubFRyaXBUeXBlJFRyaXBUeXBlIzEFVUNvbnRlbnRWaWV3JFBhZ2VMYXlvdXQkRmxpZ2h0RmluZGVyVGFiJEhvbWVwYWdlVGFicyRGbGlnaHRzVGFiJHBubFRyaXBUeXBlJFRyaXBUeXBlIzIFVUNvbnRlbnRWaWV3JFBhZ2VMYXlvdXQkRmxpZ2h0RmluZGVyVGFiJEhvbWVwYWdlVGFicyRGbGlnaHRzVGFiJHBubFRyaXBUeXBlJFRyaXBUeXBlIzIFWkNvbnRlbnRWaWV3JFBhZ2VMYXlvdXQkRmxpZ2h0RmluZGVyVGFiJEhvbWVwYWdlVGFicyRGbGlnaHRzVGFiJGN0bERlc3RpbmF0aW9uRmluZGVyX2ZpbmRlcgVgQ29udGVudFZpZXckUGFnZUxheW91dCRGbGlnaHRGaW5kZXJUYWIkSG9tZXBhZ2VUYWJzJEZsaWdodHNUYWIkY3RsRGVzdGluYXRpb25GaW5kZXJfZmluZGVyQm90dG9tBUhDb250ZW50VmlldyRQYWdlTGF5b3V0JEZsaWdodEZpbmRlclRhYiRIb21lcGFnZVRhYnMkRmxpZ2h0c1RhYiRidG5TZWFyY2gFUUNvbnRlbnRWaWV3JFBhZ2VMYXlvdXQkRmxpZ2h0RmluZGVyVGFiJEhvbWVwYWdlVGFicyRDYXJzVGFiMSRjdGxQaWNrdXBDaXR5X2ZpbmRlcgVXQ29udGVudFZpZXckUGFnZUxheW91dCRGbGlnaHRGaW5kZXJUYWIkSG9tZXBhZ2VUYWJzJENhcnNUYWIxJGN0bFBpY2t1cENpdHlfZmluZGVyQm90dG9tBUxDb250ZW50VmlldyRQYWdlTGF5b3V0JEZsaWdodEZpbmRlclRhYiRIb21lcGFnZVRhYnMkQ2Fyc1RhYjEkY2JsQ2FyVmVuZG9ycyQwBUxDb250ZW50VmlldyRQYWdlTGF5b3V0JEZsaWdodEZpbmRlclRhYiRIb21lcGFnZVRhYnMkQ2Fyc1RhYjEkY2JsQ2FyVmVuZG9ycyQxBUxDb250ZW50VmlldyRQYWdlTGF5b3V0JEZsaWdodEZpbmRlclRhYiRIb21lcGFnZVRhYnMkQ2Fyc1RhYjEkY2JsQ2FyVmVuZG9ycyQyBUxDb250ZW50VmlldyRQYWdlTGF5b3V0JEZsaWdodEZpbmRlclRhYiRIb21lcGFnZVRhYnMkQ2Fyc1RhYjEkY2JsQ2FyVmVuZG9ycyQzBUxDb250ZW50VmlldyRQYWdlTGF5b3V0JEZsaWdodEZpbmRlclRhYiRIb21lcGFnZVRhYnMkQ2Fyc1RhYjEkY2JsQ2FyVmVuZG9ycyQ0BUxDb250ZW50VmlldyRQYWdlTGF5b3V0JEZsaWdodEZpbmRlclRhYiRIb21lcGFnZVRhYnMkQ2Fyc1RhYjEkY2JsQ2FyVmVuZG9ycyQ0BUZDb250ZW50VmlldyRQYWdlTGF5b3V0JEZsaWdodEZpbmRlclRhYiRIb21lcGFnZVRhYnMkQ2Fyc1RhYjEkYnRuU2VhcmNoBUhDb250ZW50VmlldyRQYWdlTGF5b3V0JEZsaWdodEZpbmRlclRhYiRIb21lcGFnZVRhYnMkSG90ZWxzVGFiMSRidG5TZWFyY2gFOkNvbnRlbnRWaWV3JFBhZ2VMYXlvdXQkRmxpZ2h0RmluZGVyVGFiJGJ0blNlYXJjaE1hdHJpeERvd24FMkNvbnRlbnRWaWV3JFBhZ2VMYXlvdXQkQm90dG9tTmF2JGJ0blByb2ZpbGVEZXRhaWxzBSlDb250ZW50VmlldyRQYWdlTGF5b3V0JEJvdHRvbU5hdiRidG5Mb2dvbgUpQ29udGVudFZpZXckUGFnZUxheW91dCRSaWdodE5hdiRidG5NeVRyaXAHB4SN%2BrUIjKsA31wzEsFFOrcfag%3D%3D&__PREVIOUSPAGE=oyjS_uJrr0APVQWbsJUmfEUfPFMytN5uT70VAkQkkzA1&TSAServerName=&TSALastClientIP=&mail=Enter+your+email+address&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24FlightsTab%24pnlTripType%24TripType=Return&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24FlightsTab%24ctlDeparting=SYD&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24FlightsTab%24ctlDestinationFinder_city=London+Area+Airports&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24FlightsTab%24ctlDestinationFinder_cityCode=&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24FlightsTab%24ctlTravelClass=ECONOMY&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24FlightsTab%24ctlDepartureDate_day=10&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24FlightsTab%24ctlDepartureDate_month=2010%2F09&ctlDepartureDate_selectedYear=2010&ctlDepartureDate_selectedMonth=9&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24FlightsTab%24ctlReturnDate_day=20&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24FlightsTab%24ctlReturnDate_month=2010%2F09&ctlReturnDate_selectedYear=2010&ctlReturnDate_selectedMonth=9&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24FlightsTab%24ctlAirline1=0&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24FlightsTab%24ctlAirline2Hidden=0&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24FlightsTab%24uscNumberOfPassengers%24ctlAdults=1&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24FlightsTab%24uscNumberOfPassengers%24ctlChildren=0&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24FlightsTab%24uscNumberOfPassengers%24ctlInfants=0&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24FlightsTab%24SearchTodayTime=18&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24CarsTab1%24ctlPickupCity_city=&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24CarsTab1%24ctlPickupCity_cityCode=&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24CarsTab1%24ctlPickupDate_day=3&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24CarsTab1%24ctlPickupDate_month=2010%2F08&ctlPickupDate_selectedYear=2010&ctlPickupDate_selectedMonth=8&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24CarsTab1%24ctlPickupTime=%3F&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24CarsTab1%24ctlPickupLocation=NotSpecified&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24CarsTab1%24ctlDropoffDate_day=4&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24CarsTab1%24ctlDropoffDate_month=2010%2F08&ctlDropoffDate_selectedYear=2010&ctlDropoffDate_selectedMonth=8&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24CarsTab1%24ctlDropoffTime=%3F&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24CarsTab1%24ctlDropoffLocation=NotSpecified&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24CarsTab1%24ctlCarSize=Any&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24CarsTab1%24cblCarVendors%240=on&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24CarsTab1%24cblCarVendors%241=on&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24CarsTab1%24cblCarVendors%242=on&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24CarsTab1%24cblCarVendors%243=on&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24CarsTab1%24cblCarVendors%244=on&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24HotelsTab1%24HotelDestination%24Countries=AU&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24HotelsTab1%24HotelDestination%24Destinations=451&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24HotelsTab1%24HotelDestination%24Locations=&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24HotelsTab1%24HotelDestination%24CascadingDropDown1_ClientState=AU%3A%3A%3AAustralia&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24HotelsTab1%24HotelDestination%24ccdCountryDestination_ClientState=451%3A%3A%3ASydney&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24HotelsTab1%24HotelDestination%24ccdDestinationLocation_ClientState=%3A%3A%3A&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24HotelsTab1%24ctlCheckInDate_day=2&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24HotelsTab1%24ctlCheckInDate_month=2010%2F08&ctlCheckInDate_selectedYear=2010&ctlCheckInDate_selectedMonth=8&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24HotelsTab1%24ctlCheckOutDate_day=3&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24HotelsTab1%24ctlCheckOutDate_month=2010%2F08&ctlCheckOutDate_selectedYear=2010&ctlCheckOutDate_selectedMonth=8&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24HotelsTab1%24ctlNumberOfAdults=1&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24HotelsTab1%24ctlNumberOfChildren=0&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24HotelsTab1%24rblResultsViewMode=List&ContentView%24PageLayout%24FlightFinderTab%24currentView=SEARCH&Question=&QuestionLOH=&hiddenInputToUpdateATBuffer_CommonToolkitScripts=0&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24FlightsTab%24btnSearch.x=0&ContentView%24PageLayout%24FlightFinderTab%24HomepageTabs%24FlightsTab%24btnSearch.y=0");

            Console.WriteLine(sResponse);
            Console.ReadLine();
        }
    }
}

Lưu ý để lấy dữ liệu từ Post dạng string dùng tool: Fiddler Web Debugger(v2.2.9.1) ,
sau đó truyền string đó vào phương thức Post trong Class1 -> public string Post(string url, string postData)

0 comments:

Post a Comment

 
  • I'm a great believer that any tool that enhances communication has profound effects in terms of how people can learn from each other, and how they can achieve the kind of freedoms that they're interested in.

  • Followers