1
이 요청 봉투처럼 보이게하는 방법입니다 :ksoap2 중첩 된 항목은
<v:Envelope xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:d="http://www.w3.org/2001/XMLSchema" xmlns:c="http://schemas.xmlsoap.org/soap/encoding/" xmlns:v="http://schemas.xmlsoap.org/soap/envelope/">
<v:Header />
<v:Body>
<getLijst xmlns="http://OAM/OMZETAPPMETHODS.xsd">
<selectie i:type="n1:OAM_ArtstructselobjUser" xmlns:n1="http://OAM/OMZETAPPMETHODS.xsd">
<filiaal i:type="d:decimal">4</filiaal>
<artnivsel i:type="n1:OAM_ArtstructobjUser">
<asonummer i:type="d:decimal">1</asonummer>
<asotype i:type="d:string">P</asotype>
</artnivsel>
</selectie>
</getLijst>
</v:Body>
</v:Envelope>
그리고 이것은 내 코드의 일부이다 :
String nameSpace = "http://OAM/OMZETAPPMETHODS.xsd";
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setAddAdornments(false);
SoapObject request = new SoapObject(nameSpace, _soapMethod);
OAM_ArtstructselobjUser obj = new OAM_ArtstructselobjUser();
// .. This is where the properties are added, irrelevant
request.addProperty("selectie", obj);
OAM_ArtstructobjUser obj2 = new OAM_ArtstructobjUser();
// .. This is where the properties are added, irrelevant
request.addProperty("artnivsel", obj2);
envelope.setOutputSoapObject(request);
Marshal floatMarshal = new MarshalFloat();
floatMarshal.register(envelope);
envelope.addMapping(nameSpace, "OAM_ArtstructselobjUser", OAM_ArtstructselobjUser.class);
envelope.addMapping(nameSpace, "OAM_ArtstructobjUser", OAM_ArtstructobjUser.class);
그래서 난에 artnivsel
을 원하는
selectie
의 네임 스페이스를 상속합니다. 나는 위의 코드를 실행 경우 내가 무엇에 두 번째
addMapping
의
nameSpace
을 변경하면 내가
05-07 14:22:21.034: ERROR/AndroidRuntime(16417): Caused by: java.lang.RuntimeException: Unknown Property: asotype
를 얻을, 내 코드는 잘 실행됩니다. 하지만 내 봉투 XML이 올바르지 않습니다. 더 이상.
나에게 포인터를 줄 수있는 사람이라면 누구나 ksoap2 나 비누에 익숙하지 않은 사람 일 것입니다.