Google da ara

 

Temmuz 2010
Pts Sal Çar Per Cum Cts Paz
« Haz    
 1234
567891011
12131415161718
19202122232425
262728293031  

Google Reklamları

Dil Seçimi

Bağış yada Ödeme

Windows Forms – Web Browser – Kargo gönderi bilgileri sorgulama örneği

sorgula

Kargo bilgilerini ve ptt nin yurtiçi ve dışı kayıtlı gönderilerini sorgulayan bir programa ihtiyacım oldu ve ortaya böyle birşey çıktı.
bir form oluşturup şekilde görüldüğü üzere bir TextBox, bir ComboBox , bir Button ve birde WebBrowser controlü ekleyip aşağıdaki kodları yazdığınızda program çalışacaktır.

       public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            var cmbItem = (CmbItem)comboBox1.SelectedItem;

            String postdata = String.Format("{0}={1}",cmbItem.FieldToPost,textBox1.Text);

            System.Text.Encoding a = System.Text.Encoding.UTF8;

            byte[] byte1 = a.GetBytes(postdata);

            webBrowser1.Navigate(cmbItem.Url, "",byte1, "Content-Type: application/x-www-form-urlencoded" );

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            List<CmbItem> list =new List<CmbItem>();
            list.Add(new CmbItem("PTT-Yurtiçi Kayıtlı Posta","barkod","https://interaktif.ptt.gov.tr/apps/sonuc.php"));
            list.Add(new CmbItem("PTT-Yurtdışı Kayıtlı Posta", "barkod", "https://interaktif.ptt.gov.tr/apps/sonuc-yd.php"));
            list.Add(new CmbItem("Yurtiçi Kargo(GönderiNo)", "DocId", "http://selfservis.yurticikargo.com/reports/SSWDocumentDetail.aspx"));
            list.Add(new CmbItem("Aras Kargo(GönderiNo)", "Cargo_Code", "http://appl-srv.araskargo.com.tr/yurticigonbil.aspx",METHOD.GET));

            comboBox1.DataSource = list;
        }
    }

    internal class CmbItem
    {
        public string Url { get; set; }
        public string FieldToPost { get; set; }
        public string DisplayName { get; set; }
        public METHOD SendMethod { get; set; }

        public CmbItem(string displayName,string fieldToPost,string url) : this(displayName, fieldToPost, url, METHOD.POST)
        {}

        public CmbItem(string displayName,string fieldToPost,string url,METHOD sendMethod)
        {
            SendMethod = sendMethod;
            Url = url;
            DisplayName = displayName;
            FieldToPost = fieldToPost;
        }
        public override string ToString()
        {
            return DisplayName;
        }
    }
    public enum METHOD
    {
        POST,
        GET
    }

Burda kullandığımız method webBrowser in Navigate methodunda post edilecek veriyi alan değişkeni göndermekten ibarettir. Bilindiği üzere POST ve GET olmak üzere iki adet methodla web sayfalarına veri gönderebiliyoruz. GET methodu url string i içinde gönderilebilirken POST için bizim kullandığımız methodu uygulamak gerekiyor.
Burda SendMethod property si programı geliştirebilmek açısından yazılmıştır. Bu property i siz kendiniz buttonun tıklanma olayında kontrol ederek Navigate methodunun uygun overload unu çağırabilirsiniz.