Android から Web サービス (.NET) にオブジェクトを送信していますが、Web サービスから、何も受信していないことがわかります。問題がどこにあるのかわからない - それは Android または Webservice に関するものですか?
Webserviceからアイテムを受け取ることができるので、メソッドなどは問題ないはずです。また、私のメソッドは問題なく見え、エラーはスローされません。
私の方法
final String METHOD_NAME = "SetMyProduct";
final String SOAP_ACTION = "http://tempuri.org/IService1/SetMyProduct";
myAdd objToSend = new myAdd();
objToSend.setProperty(0, "aaa");
objToSend.setProperty(1, "bbb");
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
PropertyInfo pi = new PropertyInfo();
pi.setName("myAdd");
pi.setValue(objToSend);
pi.setType(myAdd.class);
request.addProperty(pi);
SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
soapEnvelope.dotNet = true;
soapEnvelope.setOutputSoapObject(request);
//soapEnvelope.bodyOut = request;
soapEnvelope.addMapping(NAMESPACE, myAdd.class.getSimpleName(), myAdd.class);
Marshal floatMarshal = new MarshalFloat();
floatMarshal.register(soapEnvelope);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try {
androidHttpTransport.call(SOAP_ACTION, soapEnvelope);//call the eb service Method
//Log.i("soapEnvelope", String.valueOf(soapEnvelope));
//Log.i("request", String.valueOf(request));
} catch (Exception e) {
Log.e("error", String.valueOf(e));
}
myAdd クラス
public class myAdd implements KvmSerializable {
String Nazwa;
String Nazwa2;
@Override
public Object getProperty(int arg0) {
switch (arg0){
case 0:
return Nazwa;
case 1:
return Nazwa2;
default:
return null;
}
}
@Override
public int getPropertyCount() {
return 2;//because you have 2 parameters
}
@Override
public void getPropertyInfo(int arg0, Hashtable arg1, PropertyInfo arg2) {
switch(arg0)
{
case 0:
arg2.type = PropertyInfo.STRING_CLASS;
arg2.name = "Nazwa";
break;
case 1:
arg2.type = PropertyInfo.STRING_CLASS;
arg2.name = "Nazwa2";
break;
default:break;
}
}
@Override
public void setProperty(int arg0, Object arg1) {
switch(arg0)
{
case 0:
Nazwa = (String)arg1;
break;
case 1:
Nazwa2 = (String)arg1;
break;
default:
break;
}
}
}