طريقه ساختن يك متد در وب سرويس براي گرفتن مقادير پارامترهاي يوآرال؟

roebuck

Member
سلام دوستان.

من قراره از چنين يو آر ال اي استفاده كنم:
مي خوام پارامترهاشو بگيرم و در ديتابيس واردكنم.

کد:
http://aaaa.com/Default.asmx/zakhire?Symbol=+S+&A=+d;
اين يو آر ال هم از يك نرم افزار ديگه صدا زده ميشه(mql4).

حالا مي خوام اين يوآرال رو بسازم ..
براي همين يك وب سرويس ساختم،يك صفحه به نام 'Default.asmx' و يك متد در webmethod به نام 'zakhire'..

کد:
[WebMethod]
    public void zakhire(string s,string d)
    {
        
        string sql = " insert into FX_Forecast2 (Symbol,A) values( '"+s+"','"+d+"')";
        
        OpenDb();
        
        cmd = new SqlCommand(sql, con);
        cmd.ExecuteNonQuery();
        
        con.Close();
        
    }
فكر ميكردم كه با تست اين صفحه ميتونم اين يوآرال رو در آدرس بار ببينم،اما نشد و فقط اين لينك ظاهر شد:
کد:
http://localhost:..../WebS-t/Default.asmx/zakhire
بايد چكار كنم تا بتونم اون يوآرال رو بسازم؟
 

roebuck

Member
فكر مي كنم كه سوالم رو واضح مطرح كردم!!

زودتر كمكم كنيد ممنون ميشم..
 

jefri600

New Member
با سلام
خوب من فکر می کنم شما این متدی که ساختید رو صدا نزدید
در لود صفحه یا با فشرده شدن یک دکمه

نمی دونم شاید با روش شما خودش اجرا می شه . درسته؟

:wink:
 

roebuck

Member
نمی دونم شاید با روش شما خودش اجرا می شه . درسته؟

در وب سرويس به اين صورت هست كه براي تست كافيه صفحه رو run‌ كنيم،در اين صورت نام متد هاي موجود به صورت لينك در صفحه قرار ميگيرند و با كليك اجرا ميشوند.

كه در اين متد با كليك بر روي لينك دو تكست باكس و يك دكمه در يك صفحه قرار ميگيرند و پارامترهاي ورودي را در تكست باكس ها قرار ميدهيم و دكمه را كليك ميكنيم..
كه بعد از اجرا صفحه اي با كد xml باز ميشود كه در يوآرال اين مسير وجود دارد:

کد:
http://localhost:..../WebS-t/Default.asmx/zakhire

اما من ميخواهم كه پارامترها با مقاديرش هم در يوآرال قرار بگيرند.

چطور اين يوآرال رو بسازم؟
 

MDP

Well-Known Member
نه دوستان مساله این نیست.

متد های وب سرویس باید به متد پست فرستاده بشن.

شما به راحتی نمی تونید با Query String این مقادیر رو پاس بدید.
اگر توی .Net کد میزنید کافیه با اضافه کردن Refrence وب سرویس به پروژه و دانلود کردن WSDL اون(VS به صورت خودکار انجام میده ) متد های لازمتون رو فراخونی کنید.
 

roebuck

Member
اگر توی .net کد میزنید کافیه با اضافه کردن refrence وب سرویس به پروژه و دانلود کردن wsdl اون(vs به صورت خودکار انجام میده ) متد های لازمتون رو فراخونی کنید.

ميشه دقيقتر راهنمايي كنيد كه من چطور ميتوم يوآرال مورد نظرم رو بسازم؟
ممنون ميشم
 

roebuck

Member
قبلا اين كار رو انجام دادم اما جوابي نگرفتم.توضيح ميدم كه اگر اشتباهي كردم راهنماييم كنيد:

يك پروژه ساختم و وب سرويس رو بهش اضافه كردم:

يك صفحه با دو تكست باكس و يك دكمه با اين كد پشت دكمه:

کد:
protected void Button1_Click(object sender, EventArgs e)
    {
        string w;
        localhost.Service s = new localhost.Service();
        s.zakhire(TextBox1.Text, TextBox2.Text);

        w = s.zakhire(TextBox1.Text, TextBox2.Text);
        Response.Write(w);

    
    }

متد وب سرويس رو هم به نوع بازگشتي تغيير دادم كه صفحه اي باز بشه و اگر پارامترها قراره نشون داده بشه بتونم در يوآرال ببينم:

کد:
[WebMethod]
    public string zakhire(string s,string d)
    {
        
        string sql = " insert into FX_Forecast2 (Symbol,A) values( '"+s+"','"+d+"')";
    
        OpenDb();
    
        cmd = new SqlCommand(sql, con);
        cmd.ExecuteNonQuery();
        
        con.Close();
        return sql;
    }

بعد از وارد شدن ديتاها صفحه اي باز ميشه و دستور اس كيو ال رو نمايش ميده..
و در يو آرال اين رو مينويسه:

کد:
http://localhost:2516/WebS-t/Default.aspx

يعني شما ميگيد با اين روش پارامترها بايد نمايش داده بشه؟
اگر نه راهش رو به من بگيد لطفا...
 

roebuck

Member
تونستم جواب سوالم رو پيدا كنم.

جواب رو براي كساني كه با وب سرويس كار ميكنند و مثل من به اين مشكل برخوردند ميذارم:

اين كد رو در فايل "Web.Config" داخل قسمت "system.web" وارد كنيد:

کد:
<webServices>

      <protocols>

        <add name="HttpGet"/>

        <add name="HttpPost"/>

      </protocols>

    </webServices>

موفق باشيد.
 

جدیدترین ارسال ها

بالا