PDA

View Full Version : اسفاده از وب سرویس در برنامه های تحت ویندوز



Masoudse7en
دوشنبه 07 اسفند 1391, 16:14 عصر
سلام میشه از وب سرویس در برنامه های تحت ویندوز استفاده کرد از جایی که پنل گرفتم فقط سی شارپ تحت ویندوز نمونه کد ارائه کردن؟این امکان ویجود داره که در vb.net هم استفاده کرد؟

فرید نجفلو
دوشنبه 07 اسفند 1391, 17:32 عصر
سلام
بله مشکلی نداره
در واقع از نظر امکانات هیچ فرقی بین سی شارپ و VB.Net نیست
کد هاشون هم از نظر شباهت خیلی نزدیک هستن و تبدیلش راحت

Masoudse7en
سه شنبه 08 اسفند 1391, 22:10 عصر
اگر در اختیارتون قرار بدم میتونید در اختیارمون قرار بدین یک پروژه که کار کنه!چون برای یک برنامه تحت ویندوز نیاز داریم!

فرید نجفلو
سه شنبه 08 اسفند 1391, 22:37 عصر
اگه منظورتون اینه که کد سی شارپ دارین مشکلی نداره کدش رو بدید تبدیل می کنیم
اگر هم کد ندارید و دستور عمل استفاده (آدرس و نحوه استفاده از توابع) رو دارید اونا رو بدید

Masoudse7en
سه شنبه 08 اسفند 1391, 23:07 عصر
پ خصوصی کردم براتون اطلاعات رو!

فرید نجفلو
چهارشنبه 09 اسفند 1391, 03:28 صبح
سلام مجدد

استفاده از وب سرویس پیامک:


یک پروژه جدید از نوع ویندوزی بسازید (یا پروژه خودتون رو باز کنید)



از Solution Explorer رو پروژه راست کلیک و وارد Properties بشید



برگه رفرنس رو باز کنید



رو فلش رو به پایین دکمه Add کلیک Service Refrence رو انتخاب کنید
در پنجره باز شده روی Advance و سپس Add Web Refrence کلیک کنید



در پنجره باز شده داخل کادر URL آدرسی رو که سرویس دهنده داده وارد کنید ( در مورد این مثال http://payamak-panel.com/post/send.asmx ) توجه کنید که آدرس کامل باشه یعنی //:http رو هم وارد کنید
دکمه Add Refrence رو زده و پنجره های باز شده رو ببندید

توجه کنید که می شد از همون اولین پنجره رفرس رو اضافه کرد اما به دولیل این کار رو نکردم 1- احتمال قدیمی بودن وب سرویس مقابل 2- هماهنگی با مثالی که تو فایل راهنمای وجود داره
ارسال SMS :

جهت ارسال اسمس کد شما به این صورت خواهد بود (توجه کنید که من فقط یکی از توابع و در واقع روش های ارسال رو درمورد این وب سرویس استفاده کردم)


Dim sms As New MyWebService.Send() 'ایجاد یک نمونه از کلاس سرویس یا همان اصلطلاحا پروکسی

Dim rec() As Long = Nothing 'شماره ای اختصاصی برای هر گیرنده که به وسیله آن وضعیت دریافت پیامک برای آن استعلام می شود
Dim status() As Byte = Nothing 'وضعیت ارسال برای هر گیرنده
Dim ToNus = "09110000000,09120000000,09130000000,09350000000" 'لیست شماره گیرندگان
Dim retval As Integer = sms.SendSms("نام کاربری", "کلمه عبور", ToNus.Split(","c), "شماره اختصاصی شما", "متن پیام", False, "", rec, status)

MsgBox(retval.ToString()) 'گزارش وضعیت

If retval = 1 Then 'اگر ارسال موفقیت آمیز بود - رجوع شود به راهنمای سرویس دهنده
For i = 0 To status.Length - 1 'بررسی تک تک گیرندگان بر اساس کدی که از سرور برگردانده شده
MsgBox(status(i) & " | " & rec(i))
Next
End If

توجه کنید که نام کاربری ، کلمه عبور و شماره اختصاصی رو باید داخل کد جایگزین کنید ، جهت آزمایش می تونید به جای کلمه نام کاربری و کلیمه عبور demo و بجای شماره از 10002012 بذارید (طبق فایل راهنما )

Dim retval As Integer = sms.SendSms("demo", "demo", ToNus.Split(","c), "10002012", "متن پیام", False, "", rec, status)


لینک فایل راهنمایی که دوستمون دادن:

http://sms.webstudio.ir/Files/WebService.pdf
نمونه کد خودشون (به سی شارپ):
http://sms.webstudio.ir/files/WinApp.zip

و یه سایت دیگه از همین نوع پنل و وب سرویس استفاده می کنه
Relax.ir (http://Relax.ir)

Masoudse7en
چهارشنبه 09 اسفند 1391, 15:04 عصر
Dim retval As Integer = sms.SendSms("نام کاربری", "کلمه عبور", ToNus.Split(","c), "شماره اختصاصی شما", "متن پیام", False, "", rec, status)

سلام کار کرد فقط یه مشکلی داره ارسال انجام میشه و بعد از زمانی که از خط زیر ارور The operation has timed out داد بعد پیام ها ارسال میشه!انگاری منتظر چیزی هست!

فرید نجفلو
چهارشنبه 09 اسفند 1391, 15:12 عصر
واسه من این حالت پیش نمیاد
البته به نظر من اگه نمی خواید از دو تا پارامتر آخر استفاده کنید بهتر از تابع SendSimpleSms یا SendSimpleSms2 استفاده کنید

Masoudse7en
چهارشنبه 09 اسفند 1391, 15:19 عصر
میشه پیادش کنید تو کد!
الان پیغام ارسال به من نمیده!میگم شاید منظر اینه که کد ارسال بشه سمت وب سرویس و برگرده پیغام بده و این کار انجام نمیشه! واسه همین ارسال رو با تاخیر انجام میده

Masoudse7en
یک شنبه 20 اسفند 1391, 12:08 عصر
تو چندتا وب سرویس دیگه هم تست کردم ولی بازم بعد از The operation has timed out پیام ارسال میشه کلی هم باید منتظر موند!

دوستان دلیلش چیه ؟کجای کارم اشتباست ؟

Masoudse7en
دوشنبه 21 اسفند 1391, 10:07 صبح
یکی راهنمایی نمیکنه!این پشتیبان وب سرویس انگاری تا الان کد ندیده!

Masoudse7en
سه شنبه 22 اسفند 1391, 15:47 عصر
یعنی تا الان کسی این مشکلو نداشته ؟

tanriaz
یک شنبه 27 اسفند 1391, 16:25 عصر
واقعا دستت درد نکنه کار من راه افتاد

parseh21
سه شنبه 12 فروردین 1393, 22:56 عصر
با درود
من مشکل دارم, در واقع کد های بالا و نمونه های دیگر رو امتحان کردم اما پیامک ارسال نمی شه.

sms.SendSms("demo", "demo", txtRec.Text.Split(new char[] { ',' }), txtNum.Text, txtMsg.Text, false, "", ref rec, ref status);

لطفا راهنمایی کنید.

parseh21
چهارشنبه 13 فروردین 1393, 17:02 عصر
با این کد مشکلم حل شد.



SmsProje.Send sms = new SmsProje.Send();



و بعد:



sms.SendSms("User", "pass", "30002223", number.Text.Split(new char[] { ',' }), message.Text, false, ref Status, ref RecId);