私はすでに私の問題についてインターネットを読んでみましたが、必要な適切な情報を見つけることができなかったので、私の問題を説明しようとしました:
SOAPを介してWebサービスと「会話」するためにkSoap2を使用しています。SOAP リクエストを生成するには、次のコードを使用します。
// Generate SOAP request XML
SoapObject request = new SoapObject(PUB_NAMESPACE,
"testSoapInterface");
// Add request header
PropertyInfo requestHeader = new PropertyInfo();
requestHeader.setNamespace(PUB_NAMESPACE);
requestHeader.setName("requestheader");
// Generate username property
PropertyInfo usernameProp = new PropertyInfo();
usernameProp.setNamespace(BASE_NAMESPACE);
usernameProp.setName("username");
usernameProp.setValue(username);
// Generate applicationId property
PropertyInfo applicationIdProp = new PropertyInfo();
applicationIdProp.setNamespace(BASE_NAMESPACE);
applicationIdProp.setName("applicationId");
applicationIdProp.setValue("test");
// Add properties to requestHeader (nested)
requestHeader.setValue(new SoapObject(PUB_NAMESPACE, "requestheader")
.addProperty(usernameProp)
.addProperty(applicationIdProp));
request.addProperty(requestHeader);
これをシリアル化するために、次を使用します。
// Serialize SOAP request to the non .NET based SOAP server
SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
soapEnvelope.dotNet = false;
soapEnvelope.implicitTypes = true;
soapEnvelope.setAddAdornments(false);
soapEnvelope.setOutputSoapObject(request);
ネストされた SOAP を使用しているため (リクエストヘッダーは applicationId とユーザー名で構成されています)、これが原因であると想像できます。また、行ごとに異なる名前空間を使用する必要があり、これも原因になる可能性があります。
誰でもこれについて私を助けることができますか?? ありがとう!