View Full Version : حرفه ای: web service
parssap
سه شنبه 09 اسفند 1390, 23:32 عصر
سلام دوستان
می خواهم از یک web service استفاده کنم اون رو از طریق WSDL Importer تعریف کردم ولی وقتی پارامترهای یک فاکشنش رو که از تایب String هست و Libray من اونو AnsiString تعریف کرده صدا می کنم هر مقداری بعنوان پارامتر می دهم اون طرف NULL دریافت می کند . میشه راهنمایی کنید اگه کسی این تجربه رو داره لطفا کمک کنه.:گریه:
BORHAN TEC
چهارشنبه 10 اسفند 1390, 08:47 صبح
شاید شما به درستی طریقه استفاده از وب سرویس را نمی دانید. در هر صورت من یک ویدئوی فارسی را در آدرس زیر قرار داده ام که روش کار را نشان می دهد. لطفاً اگر بعد از مشاهده این ویدئو باز هم مشکل برطرف نشد اطلاع بدین تا رسیدگی کنم.
آدرس ویدئو(یکی از لینکها الان دیگه کار نمیکنه، پس از اون یکی استفاده کن):
http://barnamenevis.org/showthread.php?327108-%D8%B3%D8%B1%DB%8C-%DA%A9%D9%86%D9%81%D8%B1%D8%A7%D9%86%D8%B3%D9%87%D 8%A7%DB%8C-%D8%B1%D8%A7%DB%8C%DA%AF%D8%A7%D9%86-%D8%AF%D9%84%D9%81%DB%8C-%28%D8%A8%D9%87-%D8%B2%D8%A8%D8%A7%D9%86-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C%29&p=1438167&viewfull=1#post1438167
parssap
چهارشنبه 10 اسفند 1390, 10:32 صبح
شاید شما به درستی طریقه استفاده از وب سرویس را نمی دانید. در هر صورت من یک ویدئوی فارسی را در آدرس زیر قرار داده ام که روش کار را نشان می دهد. لطفاً اگر بعد از مشاهده این ویدئو باز هم مشکل برطرف نشد اطلاع بدین تا رسیدگی کنم.
آدرس ویدئو(یکی از لینکها الان دیگه کار نمیکنه، پس از اون یکی استفاده کن):
http://barnamenevis.org/showthread.php?327108-%D8%B3%D8%B1%DB%8C-%DA%A9%D9%86%D9%81%D8%B1%D8%A7%D9%86%D8%B3%D9%87%D 8%A7%DB%8C-%D8%B1%D8%A7%DB%8C%DA%AF%D8%A7%D9%86-%D8%AF%D9%84%D9%81%DB%8C-%28%D8%A8%D9%87-%D8%B2%D8%A8%D8%A7%D9%86-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C%29&p=1438167&viewfull=1#post1438167
به نظر می رسه که درست عمل کردم چون فانکشن کال می شه و لی پارامترها اگر عددی باشد صفر در می شه و اگر string باشه "" در می شه ولی دستور شما رو اجرا می کنم و اگر باز مشکل داشتم خبر می دهم
باز از توجهتون ممنونم
ویدیو را تماشا کردم البته یادم رفت بگم از C++ Builder 6 که معادل دلفی 7 است استفاده می کنم که روش اون کمی فرق می کنه.
بهتره بگم چکار کردم شما لطف کنید بگید اشکال از کجا می تونه باشه.
ابتدا یه پروژه با یک فرم خالی ایجاد کردم. یک دگمه روی اون گذاشم , و از قسمت web service یک کامپوننت HTTPRIO اضافه کردم و ادرس WSDL و پورت و SOAP رو
تعریف کردم.که بعد از WSDL بقیه از DRP DOWN انتخاب شد.
سپس به قسمت FILE->NEW-OTHER->WEBSERVICE->IMPORT WSDL رفتم و آدرس WSDL سایت رو گذاشتم و خودش برام یک لایبرری SERVICE.CPP ساخت.
بعد از اون اون رو به پروژه ام ADD کردم و SERVICE.H رو اول فایل اصلی برنامم INCLUDE کردم
سپس در ON CLICK دگمه این متن رو گذاشتم :
_di_eBob42CSharpSoap soapClass;
char S[10];
int i=0;
HTTPRIO1-> QueryInterface(soapClass);
if ( soapClass ) {
i=soapClass->Echoint(3);
itoa(i,S,10);
Button1->Caption=S;
}
else
Button1->Caption="ERROR";
با زدن دگمه خودم فانکشن کال می شه و لی جواب بجای 3 صفر است یعنی فانگشن فکر می کنه من صفر فرستادم
این مشکل را ور باسایتهای دیگه و پارامترهای STRING هم دارم.
این سایت کلی فانکشی برای تست داره که من امتحان کردم
http://www.ebob42.com/cgi-bin/wsebob42csharp.asmx?WSDL
باز از راهنماییتون ممنونم
BORHAN TEC
چهارشنبه 10 اسفند 1390, 13:51 عصر
سلام
متاسفانه الان روی سیستمم C++ Builder 6 نصب نیست. من از C++ Builder 2010 استفاده کردم و جواب هم گرفتم. برای این کار حتی از کامپوننت THTTPRIO هم استفاده نکردم و تا اونجایی که یادم میاد در نسخه های قدیمی هم اصلاً نیازی به اون نبود. من ابتدا از همان WSDL Importer استفاده کردم و سپس برای استفاده از وب سرویس از کد زیر استفاده کردم.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "wsebob42csharp.H"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{
Caption = GeteBob42CSharpSoap()->Echoint(23);
}
//---------------------------------------------------------------------------
parssap
چهارشنبه 10 اسفند 1390, 19:05 عصر
شاهین جان سورس شما رو هم گذاشتم همون مشکل رو داشت و صفر بر می گردونه.
موقع نصب C++ BUILDER کامل نصب نکردم و CORBA رو نصب نکردم.ممکنه از اون باشه یا اینکه اصلا نسخه ییلدرم مشکل داشته باشه.
چی فکر می کنی
parssap
پنج شنبه 11 اسفند 1390, 21:46 عصر
C++ Builder 2010 , C++ builder XE رو خریدم نصب کردم و سورس شاهین جان رو گذاشتم باز نتیجه نداد.
تو رو خدا یکی به دادم برسه
ممنون میشم
اصلا اگر کسی این کارو خودش کرده یه خبر بده تا آخر وقت اداری روز شنبه وقت دارم.
ممنونم
BORHAN TEC
شنبه 13 اسفند 1390, 11:10 صبح
سلام
متاسفانه چند روزی مسافرت بودم و نتونستم پیام شما رو ببینم. :خجالت:
کدی که من قرار دادم به درستی کار میکنه!
در مورد C++ Builder 6 به احتمال بسیار زیاد وجود یک باگ اجازه این کار را به ما نمیدهد، چون من شخصاً این موضوع را با BCB 6 تست کردم و به شکل غیر منتظره ای همان مشکلی که عرض کردید پیش آمد! :متفکر:
اما، من خودم شخصاً کدی که قرار داده ام را در C++ Builder 2010 تست کرده ام و باید بگویم که بدون کوچکترین مشکلی هم کار می کند.
در همین رابطه، من یک فیلم آموزشی را مختص همین مشکل شما در محیط C++ Builder 2010 ساخته ام که آنرا در آدرس زیر آپلود کرده ام که پیشنهاد میکنم حتماً از آن استفاده کنید.
http://hipfile.com/6iq8nnxa4pq3/WebServicesInBCB.zip.html
اگر باز هم مشکلی بود ما در خدمتیم. :چشمک:
parssap
شنبه 13 اسفند 1390, 19:02 عصر
شاهین جان فقط جهت اینکه این تاپیک کامل باشه جواب میدم ولی با فیلیم که دادی مشکل من برای ورژن XE حل شد.
می خواستم بگم تو ورژن 6.0 سی پلاس پلاس بیلدر در قسمت COMPONENT ایتم IMPORT WSDL نداره و فقط از طریق new -> other میشه کار کرد که از این طریق حنی ورژن های جدید هم کار نمی کنند اگه بشه براش کاری کرد ممنون میشم.
بازم مرسی
BORHAN TEC
یک شنبه 14 اسفند 1390, 08:17 صبح
بدون شک این باگ یکی از بدترین و پر دردسرترین باگها در محیط BCB 6 است. خوشبختانه با در خواست دوست عزیزمان بعد از چند ساعت سر و کله زدن با BCB 6 تونستم که یک راه حل بسیار عالی و مطمئن را برای دور زدن این باگ در محیط C++ Builder 6 کشف کنم. توضیح دادن و نوشتن در مورد آن زمان زیادی می گیرد. بنابراین یک ویدئو را از نشان دادن نحوه کار کپچر کرده ام که دوستان می توانند از آن استفاده کنند.
آدرس ویدئوی مربوطه:
http://hipfile.com/etwg3b0yxssl/WebServiceInBCB.zip.html
انصافاً ارزش کلیک کردن بر روی دکمه تشکر رو داره! :کف:
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.