我正在使用ksoap提出请求。
但是,我对如何在soap请求中发送标题和以下格式有疑问。
我有肥皂请求数据,我想向服务器发送肥皂请求:
肥皂要求:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ihc="http://testingsite.com" xmlns:ihcl="http://testingsite.com">
<soapenv:Header>
<wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/07/secext">
<wsse:UsernameToken>
<wsse:Username>name</wsse:Username>
<wsse:Password>password</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<MyList xmlns="http://testingsite.com">
<Details>
<Name1>hi</Name1>
<Name2>Hello</Name2>
<MyAddress>
<Address1 IsPrimary="Y">
<Add1>Personal</Add1>
<Add2>Personal</Add2>
</Address1>
</MyAddress>
</Details>
</MyList>
</soapenv:Body>
</soapenv:Envelope>
答案 0 :(得分:0)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.test);
AsyncTaskRunner runner = new AsyncTaskRunner();
runner.execute();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
private class AsyncTaskRunner extends AsyncTask<String, String, String> {
private String resp;
@Override
protected String doInBackground(String... params) {
publishProgress("Loading contents...");
try {
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
SoapObject request = new SoapObject(NAMESPACE, METHOD);
PropertyInfo quotesProperty = new PropertyInfo();
request.addProperty("WsClientName","RAKDEDTester");
request.addProperty("Password", "d41d8cd98f00b204e9800998ecf8427e");
envelope.bodyOut = request;
HttpTransportSE transport = new HttpTransportSE(URL);
try {
transport.call(NAMESPACE + SOAP_ACTION_PREFIX + METHOD, envelope);
} catch (IOException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
}
if (envelope.bodyIn != null) {
SoapPrimitive resultSOAP = (SoapPrimitive) ((SoapObject) envelope.bodyIn).getProperty(0);
resp=resultSOAP.toString();
}
} catch (Exception e) {
e.printStackTrace();
resp = e.getMessage();
}
return resp;
}
@Override
protected void onPostExecute(String result) {
textView.setText(result);
}
@Override
protected void onPreExecute() {
}
@Override
protected void onProgressUpdate(String... text) {
textView.setText(text[0]);
}
}
}