PDA

View Full Version : سوال: فراخوانی وب سرویس wsdl با جاوا اسکریپت؟



kaveh107
شنبه 27 آبان 1396, 19:20 عصر
سلام
دوستان، چگونه می توانم با جاوا اسکریپت و اچ تی ام ال اطلاعات یک وب سرویس نوع wsdl را مستقیما بدون دریافت فایل xml بدست آورم؟

parvizwpf
شنبه 27 آبان 1396, 19:35 عصر
https://www.codeproject.com/Questions/1065136/call-wsdl-file-from-jquery-soap-service

kaveh107
شنبه 27 آبان 1396, 20:07 عصر
سلام
بهتره توضیحات بیشتری بدم. من یک سایت دارم که فقط می توانم با کدهای اچ تی ام ال و جاوا اسکریپت در آن بنویسم آیا با این امکانات راهی است که فایل xml پاسخ وب سرویس را به داخل سرور بیاورم و بعد از روی فایل پاسخ را بدست آورم ؟ یا اینکه اصلا راهی است که پاسخ را به نوعی مستقیم دریافت کنم؟

plague
یک شنبه 28 آبان 1396, 18:38 عصر
من درست متوجه نمیشم مشکلت چیه ولی درخواست ایجکس میتونی بفرستی به آدرس xml دریافتش کنی
ولی خب اگه SOAP باشه با وب سرویس نمیتونی گفتگو کنی و داده بفرستی و بگیری
فقط فایل xml رو دریافت میکنی چون نمیتونی SOAP CLIENT بسازی
مگه اینکه کتابخونه ای برای اینکار نوشته شده باشه که من ندیدم

ساده ترین راه در اینصورت اینه که یه هاست دوم با قابلیت ساپورت PHP یا ASP تهیه کنی
از هاست اول درخواست ایجکس بفرستی به هاست دوم و هاست دوم با PHP با وبسرویس گفتگو کنه و نتیجش رو برگردونه در قالب JSON یا XML

kaveh107
دوشنبه 29 آبان 1396, 19:46 عصر
من درست متوجه نمیشم مشکلت چیه ولی درخواست ایجکس میتونی بفرستی به آدرس xml دریافتش کنی
ولی خب اگه SOAP باشه با وب سرویس نمیتونی گفتگو کنی و داده بفرستی و بگیری
فقط فایل xml رو دریافت میکنی چون نمیتونی SOAP CLIENT بسازی
مگه اینکه کتابخونه ای برای اینکار نوشته شده باشه که من ندیدم

ساده ترین راه در اینصورت اینه که یه هاست دوم با قابلیت ساپورت PHP یا ASP تهیه کنی
از هاست اول درخواست ایجکس بفرستی به هاست دوم و هاست دوم با PHP با وبسرویس گفتگو کنه و نتیجش رو برگردونه در قالب JSON یا XML

با تشکر منظور من soap xml است. آنچه که متوجه نمی شوم اینست با درخواست ایجکس چه اتفاقی می افتد؟ آیا یک فایل xml دریافت شده و در هارد سرور ذخیره می شود و مراحل بعدی کار کردن با این فایل است؟ یا اینکه محتوای xml بصورت یک متغیر استرینگ دریافت شده و مراحل بعدی کار کردن با این استرینگ است؟ کدام را دریافت می کنیم؟
سوال بعدی در مورد مثال زیر است
var soapMessage =
'<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'+
'<soap:Body>'+
'<SomeMethod>'+
'<Arg1>Arg1 Value</Arg1>'+
'<Arg2>Arg2 Value</Arg2>'+
'</SomeMethod>'+
'</soap:Body>'+
'</soap:Envelope>';

$.ajax({
url: "http://localhost/someService.svc",
type: "POST",
dataType: "xml",
contentType: "text/xml; charset="utf-8"",
headers: {
SOAPAction: "http://localhost/someService/SomeMethod"
},
data: soapMessage,
success: function(soapResponse){
//DO SOMETHING
}
});
ادرس مثال:
http://www.fahadismy.name/soap-calls-using-jquery-ajax/
(http://www.fahadismy.name/soap-calls-using-jquery-ajax/)
در مثال فوق با متد ایجکس یک soap request توسط متغیر soapMessage ارسال می شود انچه دریافت می شود چیست؟ ایا soapResponse در مثال فوق نام یک فایل است یا اینکه چیز دیگری مثلا استرینگ است؟ مشابه این مثالها زیاد دیدم ولی قسمت آخر توضیح داده نشده است

plague
سه شنبه 30 آبان 1396, 11:10 صبح
1 - استرینگ دریافت میشه
جاوا اسکریپت یه زبان تحت کلاینت هستش یعنی اصلا توی سرور اجرا نمیشه بلکه سمت کلاینت و توی مرورگر کلاینت اجرا میشه

2 - soapResponse حاوی پاسخ درخواست ایجکس هستش .... پاسخ همیشه استرینگ هستش ولی خب میتونه استرینگ فرمت شده باشه ...مثل xml یا json شما میتونی console.log میتونی مختوای یک متغیر رو ببینی و ببینی چی داخلشه مثلا

console.log(soapResponse )

kaveh107
یک شنبه 19 آذر 1396, 20:14 عصر
سلام
برای تست دریافت وب سرویس سوپ wsdl با روش فوق نیاز به آدرس یک وب سرویس آزمایشی بهمراه کد soap request مربوطه دارم تا ابتدا مطمئن بشم روش فوق جواب میده یا نه. اصلا چیزی برای این تست وجود داره؟

kaveh107
شنبه 25 آذر 1396, 20:20 عصر
سلام
تحقیق کردم کدهای جاوا اسکریپت دو نوع هستند اولی client side که در مرورگرها قابل اجرا است دومی server side که در سرور بهمراه زبان برنامه نویسی دیگر پس از کامپایل قابل اجرا است.
کد جاوا اسکریپت زیر از یک مثال در اینترنت برای فراخوانی وب سرویس soap wsdl است .و از روی آن یک برنامه html کدنویسی کردم و از طریق آن در مرورگر سعی کردم وب سرویسی را فرا خوانی کنم ولی خطای صفر داد البته قبل از آن وب سرویس را ازطریق نرم افزار soapUI فراخوانی کرده و کار می کرد.یعنی وب سرویس و soap request هر دو درست بودند.
اگر کسی با کد زیر آشنا است سوال اینست کد زیر client side است یا server side؟ اگر server side است بی خیالش بشم.

var soapMessage =
'<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'+
'<soap:Body>'+
'<SomeMethod>'+
'<Arg1>Arg1 Value</Arg1>'+
'<Arg2>Arg2 Value</Arg2>'+
'</SomeMethod>'+
'</soap:Body>'+
'</soap:Envelope>';

$.ajax({
url: "http://localhost/someService.svc",
type: "POST",
dataType: "xml",
contentType: "text/xml; charset="utf-8"",
headers: {
SOAPAction: "http://localhost/someService/SomeMethod"
},
data: soapMessage,
success: function(soapResponse){
//DO SOMETHING
}
});
ادرس مثال:
http://www.fahadismy.name/soap-calls-using-jquery-ajax (http://www.fahadismy.name/soap-calls-using-jquery-ajax/)

plague
یک شنبه 26 آذر 1396, 16:25 عصر
js زبان سمت کلاینت هستش و کد شما هم برای کلاینت هستش
اونیکه شما دیدی گفتن سمت سروره nodejs هستش که جریان دیگه ای داره