Судя по вашим ошибкам, клиент должен предоставить учетные данные для аутентификации на сервере.Как сервер аутентифицирует клиента в вашем веб-сервисе?
В общем, мы аутентифицируем клиента с помощью пользовательского заголовка, в то время как SOAPObject устанавливает значение параметра вызывающего метода.
Вы можете обратиться к следующему коду:предоставить идентификационную информацию.
public static void call(String methodName, SimpleArrayMap<String, Object> mapParams, ResponseCallBack reponseCallBack)
{
HttpTransportSE transport = new HttpTransportSE(ENDPOINT);
transport.debug = true;
Element[] header = new Element[1];
header[0] = new Element().createElement(NAMESPACE, ID_HEADERNAME);
Element userName = new Element().createElement(NAMESPACE, ID_NAME_PARAM);
userName.addChild(Node.TEXT, ID_NAME_VALUE);
header[0].addChild(Node.ELEMENT, userName);
Element password = new Element().createElement(NAMESPACE, ID_PASSWORD_PARAM);
password.addChild(Node.TEXT, ID_PASSWORD_VALUE);
header[0].addChild(Node.ELEMENT, password);
SoapObject soapObject = new SoapObject(NAMESPACE, methodName);
if (mapParams != null)
{
for (int index = 0; index < mapParams.size(); index++)
{
String key = mapParams.keyAt(index);
Object value = mapParams.get(key);
soapObject.addProperty(key, value);
}
}
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.headerOut = header;
envelope.dotNet = isDotNet;
envelope.bodyOut = soapObject;
*****
*****
}