رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

ارسال اطلاعات به وب سرویسی از نوع soap


پست های پیشنهاد شده

سلام خسته نباشید

من یه پرتال ارسال اس ام اس دارم که از شرکت ایمن سی ام اس گرفتم این شرکت یه وب سرویس در اختیار من گذاشته به این ادرس:

http://www.imencms.com/sms/sms.asmx

من با ASP.net  به راحتی واسش کد نوشتم و استفاده کردم

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

من مرحله به مرحله طبق آموزشی که در این لینک معرفی کرده بودید

http://www.c-sharpcorner.com/uploadfile/88b6e5/how-to-call-web-service-in-android-using-soap/

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

نوی سایتهای خارجی هم خیلی سرچ کردم نشد توی اموزشی که گفته بودید سورس خودش کار میکنه

احساس من در اینه که مشکل از شناسایی درست اکشن و ادرس دهی هست  در عکس زیر نگاه کنید تمامی موارد خواسته شده با http   شروع شدند اما این در حالی هست که توی وب سرویس من اینطور نیست چطور باید ادرس صحیح رو استخراج کنم  مشکل عمده من در هیمنه مابقیش طبق اموزش چیز خاصی نداره

720x449http://www.c-sharpcorner.com/UploadFile/88b6e5/how-to-call-web-service-in-android-using-soap/Images/AndWeb10.jpg[/img]

در صورت امکان بررسی کنید ببینید چطور میشه از این وب سرویس استفاده کرد

با تشکر

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بدین صورت عمل کنید :

public static String ServerIP = "http://192.168.10.8/";    public static String SOAP_ACTION = "http://tempuri.org/CelesiusToFarenheit";public static String NAMESPACE = "http://tempuri.org/";public static String METHOD_NAME = "CelesusTOFahrenheit";public static String URL = ServerIP+"Service.asmx?WSDL";SoapObject request = new SoapObject(ServerInfo.NAMESPACE, ServerInfo.METHOD_NAME_Player_GetByName);               request.addProperty("ID",ID);        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);        envelope.setOutputSoapObject(request);        envelope.dotNet = true; try {            HttpTransportSE androidHttpTransport = new HttpTransportSE(ServerInfo.URL);            //this is the actual part that will call the webservice            androidHttpTransport.call(ServerInfo.SOAP_ACTION1_Player_GetByName, envelope);            // Get the SoapResult from the envelope body.            SoapObject result = (SoapObject)envelope.bodyIn;            if(result != null)            {                         }            else            {                  Toast.makeText(getApplicationContext(), "No Response",Toast.LENGTH_LONG).show();            }

فقط توجه نمایید،باید آی پی و اطلاعات سرور خود را بجای  این کدها وارد نمایید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

کد من در نهایت شد این در ضمن من ادرس هاست رو با پینگ کردن ادر سایت www.imencms.com  نوشتم اما باز نتیجه ای حاصل نشد

package com.webservice;import org.ksoap2.SoapEnvelope;import org.ksoap2.serialization.SoapObject;import org.ksoap2.serialization.SoapSerializationEnvelope;import org.ksoap2.transport.HttpTransportSE;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class WebServiceDemoActivity extends Activity {public static String ServerIP = "http://46.105.250.179/";   public static String SOAP_ACTION = "ImenCMS_SMS_Service/SendOneSMSAgent";public static String NAMESPACE = "ImenCMS_SMS_Service";public static String METHOD_NAME = "Send_x0020_One_x0020_SMS";public static String URL = ServerIP+"/sms/sms.asmx?wsdl";Button btnFar,btnCel,btnClear;EditText txtFar,txtCel;   @Override   public void onCreate(Bundle savedInstanceState)    {       super.onCreate(savedInstanceState);       setContentView(R.layout.main);              btnFar = (Button)findViewById(R.id.btnFar);       btnCel = (Button)findViewById(R.id.btnCel);       btnClear = (Button)findViewById(R.id.btnClear);       txtFar = (EditText)findViewById(R.id.txtFar);       txtCel = (EditText)findViewById(R.id.txtCel);       txtFar.setText("09167288894");       txtCel.setText("test");       btnFar.setOnClickListener(new View.OnClickListener()        {		public void onClick(View v) 		{	    	SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);      	    	 request.addProperty("MobileNo",txtFar.getText().toString());                request.addProperty("SMSText",txtCel.getText().toString());                request.addProperty("AcountID","");	        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);	        envelope.setOutputSoapObject(request);	        envelope.dotNet = true;	        	    		    	try {	    			        		        	 HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);	             //this is the actual part that will call the webservice	             androidHttpTransport.call(SOAP_ACTION, envelope);	             // Get the SoapResult from the envelope body.	             SoapObject result = (SoapObject)envelope.bodyIn;	             if(result != null)	             {	             	             }	             else	             {	                   Toast.makeText(getApplicationContext(), "Nooo Response",Toast.LENGTH_LONG).show();	        		        		        		        		        		             	    	} 	    	} catch (Exception e) {	    		e.printStackTrace();	    	}		    	}		}	);              btnCel.setOnClickListener(new View.OnClickListener()        {		public void onClick(View v) 		{			txtCel.setText("");			txtFar.setText("");		}	});   }}

لطفا بگید چیکار کنم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

این کد و طبق چیزی که شما گفتید پارامترها یا باید پاسخ رو برگردونند یا خطا  اما این هیچگونه عکس العملی نشون نمیده

لینک ارسال
به اشتراک گذاری در سایت های دیگر

لطفا اگر وب سرویس شما روی نت میباشد آدرس آن را برام پیغام خصوصی کنید تا نگاهی بهش بندازم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

لطفا کدتون رو دیباگ کنید و مقدار نهایی  متغیر result را قرار دهید..

کدتونم نگاه کردم معلومه چیزی بر نمیگردونه چون در شرط تون اگر نگاه کنید وقتی جواب درست بود هیچ دستوری ننوشتید.

  if(result != null)                     {//اینجا باید مقدار رو بگیرید و برای کاربر نمایش دهید.                                          }                     else                     {                           Toast.makeText(getApplicationContext(), "Nooo Response",Toast.LENGTH_LONG).show();                                      } 

سعی کنید کمی توجه کنید به کدهاتون و پشت سر هم پست ندهید که  چرا جواب قرار داده نشد ، مدیران سایت در حد توان خود تایمی را برای مدیریت انجمن قرار میدهند.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

با تشکر از توجهتون

ولی باید عرض کنم که این وب سرویس برگردوندن جواب زیاد مهم نیست با ارسال پارمترها باید از طریق پرتال یه اس ام اس برای شماره مورد نظر ارسال بشه که این کار انجام نمیشه

نهایتا این وب سرویس  0 یا 1 رو برمیگردونه که نشانه این هست که ما بفهمیم پیام ارسال شده یا نه

وقتی ارسال میزنیم هیچ اس ام اسی از طریق پرتال که وب سرویس بهش متصل هست ارسال نمیشه

بازهم پیشاپیش تشکر

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...