【发布时间】:2012-04-24 21:20:58
【问题描述】:
我已经尝试在互联网上阅读有关我的问题的信息,但找不到所需的正确信息,因此我尝试解释我的问题:
我正在使用 kSoap2 通过 SOAP 与 Web 服务“对话”。 要生成我的 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(requestheader 由 applicationId 和 username 组成)我可以想象这可能是原因。 我还必须为不同的行使用不同的命名空间,这也可能是一个原因。
有人可以帮我吗? 谢谢!
【问题讨论】:
-
附加信息:我使用的是 kSoap 2.6.3,我想去掉为“requestheader”生成的开始标记中的 i:type 字段。
-
@Niels_D..你解决问题了吗..如果你发布一个解决方案会很棒..
标签: android soap ksoap2 android-ksoap2 ksoap