استفاده از یک وب سرویس در ASP.NET

چهارشنبه 6 آبان 1394

وب سرویس ها برنامه (قطعه کد) هایی هستند که تحت وب قابل دسترسی اند و از طریق پروتکل های استانداردی مانند Http به انتقال و مبادله دیتا با سایر برنامه های کاربردی می پردازند. اساس کار وب سرویس (Web Service) ها بر پایه دریافت و تولید پیغام بنیان گذاری شده است. بدین معنی که آنها منتظر می مانند که کلاینت ها به آنها وصل شده و بنا به درخواست کلاینت ها به آن ها پاسخ می دهند. در این مقاله می خواهیم نحوه استفاده از یک وب سرویس را در ASP.NET آموزش دهیم.

استفاده از یک وب سرویس در ASP.NET

توسط کد HTML زیر صفحه نمایشی مورد نظر را می سازیم:



    <body>  
        <form id="form1" runat="server">  
            <div style="margin-left:200px;border-style:solid; border-color:aqua; width:270px;height:300px;">  
                <div>  
                    Country:  
                </div>  
                <div>  
                    <asp:DropDownList ID="ddl_country" runat="server" AutoPostBack="True" Height="21px" OnSelectedIndexChanged="ddl_country_SelectedIndexChanged" Width="250px"></asp:DropDownList>  
                </div>  
                <br />  
                <div>  
                    Country Code  
                </div>  
                <div>  
                    <asp:TextBox runat="server" ID="txt_countrycode"></asp:TextBox>  
                </div>  
                <br />  
                <div>  
                    Currency;  
                </div>  
                <div>  
                    <asp:TextBox runat="server" ID="txt_currency"></asp:TextBox>  
                </div>  
                <br />  
                <div>  
                    CurrencyCode:  
                </div>  
                <div>  
                    <asp:TextBox runat="server" ID="txt_isd"></asp:TextBox>  
                </div>  
            </div>  
        </form>  
    </body>  

که به صورت زیر می شود:

حالا در این پروژه رفرنس سرویس را به صورت زیر وارد می کنیم:

بر روی نام پروژه راست کلیک می کنیم، و بعد گزینه Add و در آخر Service Reference را میزنیم مانند تصویر زیر:

وب سرویس مورد نظری که میخواهیم استفاده کنیم در این لینک وجود دارد. حالا وارد لینک getcountry شده و آدرس آن را در service reference وارد می کنیم، به صورت زیر:

یک نام مناسب انتخاب کنید، این نام Namespace شما خواهد شد. در آخر دکمه GO را کلیک کنید:

بعد از پیدا کردن سرویس مورد نظر به قسمت Services اضافه می شود:

 

 

 

در اینجا اگر به مشکل برخوردید و سرویس اضافه نشد می توانید به گزینه Advanced رفته و صفحه زیر باز می شود:

در اینجا گزینه Add Web Reference را بزنید و آدرس سرویس مورد نظر را در قسمت Url وارد کنید، فقط در نظر داشته باشید که در اینجا آدرس اصلی یا Root سرویس را وارد کنید و بعد سرویس مورد نطر را انتخاب کنید:

 

در آخر OK را بزنید.

در اینجا کد زیر را برای بدست آوردن نام تمام کشورها و وارد کردنشان به dropdownlist می نویسیم:

protected void Page_Load(object sender, EventArgs e)  
{  
    if (!IsPostBack)  
    {  
        fillcountry();  
    }  
}  
public void fillcountry()  
{  
    myservice.countrySoapClient obj = new myservice.countrySoapClient(); //you can declare it globally.  
    var country = obj.GetCountries();  
    StringReader stream = null;  
    XmlTextReader reader = null;  
    DataSet ds = new DataSet();  
    stream = new StringReader(country);  
    // Load the XmlTextReader from the stream  
    reader = new XmlTextReader(stream);  
    ds.ReadXml(reader);  
    ddl_country.DataSource = ds;  
    ddl_country.DataTextField = "Name";  
    ddl_country.DataBind();  
}

و به صورت زیر می شود:

 

حالا کد زیر را برای پر کردن قسمت های کد کشور، واحد پول، کد ارز  اضافه می کنیم:

protected void ddl_country_SelectedIndexChanged(object sender, EventArgs e) {  
    myservice.countrySoapClient obj = new myservice.countrySoapClient(); //you can declare it globally.  
    string currency = obj.GetCurrencyByCountry(ddl_country.SelectedItem.Text);  
    StringReader stream = null;  
    XmlTextReader reader = null;  
    DataSet ds = new DataSet();  
    stream = new StringReader(currency);  
    reader = new XmlTextReader(stream);  
    ds.ReadXml(reader);  
    txt_currency.Text = ds.Tables[0].Rows[0]["Currency"].ToString();  
    txt_countrycode.Text = ds.Tables[0].Rows[0]["CountryCode"].ToString();  
    txt_isd.Text = ds.Tables[0].Rows[0]["Currencycode"].ToString();  
} 

حالا برنامه را اجرا کنید و کشور مورد نظر را از DropDownList انتخاب کرده و جزییات را در جعبه متنها ببینید:

 

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید