مشکل در استفاده از وب سرویس های asmx
سلام
سوالم اینه که آیا آموزش وب سرویسی که استاد آوردن فقط مربوط به php میشه و وب سرویس با پسوند asmx طریقه ی فراخوانی و استفادش فرق میکنه؟؟؟
من از سرچ هایی که انجام دادم متوجه شدم برای asmx باید از soap object استفاده کنم. در هرصورت کتابخانه ی مربوط به soap راهم نصب کردم اما بازم نمیتونم از دستوراتش استفاده کنم وتمام خطوط import مربوطش را خطا میگیره.
ممنون میشم راهنماییم کنید.
package com.pay.course.web;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
public class CallSoap
{
public final String SOAP_ACTION = "http://tempuri.org/Add";
public final String OPERATION_NAME = "Add";
public final String WSDL_TARGET_NAMESPACE = "http://tempuri.org/";
public final String SOAP_ADDRESS = "http://grasshoppernetwork.com/NewFile.asmx";
}
پاسخ حذف شد .
مشکل من با کتابخانه سواپ حل شد ولی با اینکه پرمیژن اینترنت را هم ست کردم در استپ 3 خطا دارد میتونید راهنمایی کنید؟
private final String NAMESPACE = "http://test.30dpardaz.com/android/";
private final String URL = "http://test.30dpardaz.com/android/android.asmx?WSDL";
private final String SOAP_ACTION = "http://test.30dpardaz.com/android/test";
private final String METHOD_NAME = "test";
private static String fahren;
public String web()
{
String step = "0";
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
step = "1";
envelope.setOutputSoapObject(request);
envelope.dotNet = true;
try
{
step = "2";
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
step = "3";
androidHttpTransport.call(SOAP_ACTION, envelope);
step = "4";
SoapObject response = (SoapObject) envelope.bodyIn;
step = "5";
if (response != null)
fahren = response.getProperty(0).toString();
return fahren;
}
catch (Exception e) {
e.printStackTrace();
return step;
}
دوستان خداراشکر مشکل حل شد من واسه رسیدن به جواب خیلی سرچ کردم میزارم شاید به درد کسی بخوره
راه حل اینه که دو خط کد زیر را اول صدا زدن وب سرویس بنویسید.
if (android.os.Build.VERSION.SDK_INT > 9){
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .