Я немного новичок в Java и платформе Android, однако то, что я делаю, не считаю сложной задачей. Существует сервер XML-RPC LAMP, который возвращает массив структур (массив ассоциативных массивов), и мне не удалось успешно получить ответ в моем проекте Android.
Я использую библиотеку apache xml-rpc:
import org.apache.xmlrpc.XmlRpcException;
import org.apache.xmlrpc.client.XmlRpcClient;
import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
Вот код. Сервер XML-RPC является локальной установкой. Я частично озадачен, потому что я смог получить ответ просто отлично, используя инструмент отладчика XML-RPC, найденный здесь: http://xmlrpc -debug.sourceforge.net /
XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
try {
config.setServerURL(new URL("http://192.168.1.125:8886/api"));
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
// shouldn't need this because URL is hardcoded
e.printStackTrace();
}
XmlRpcClient client = new XmlRpcClient();
client.setConfig(config);
//The only param is userId. Hardcoded in 1, which is a valid id.
Vector<Integer> params = new Vector<Integer>();
params.add( 1 );
try {
Object xmlrpc_reponse = client.execute("Api.getUser", params);
//theres more code here to handle the object and return the result,
//but it never gets past the above line before triggering the exception
} catch (XmlRpcException e) {
Log.w("xmlrpcproblem", e.getMessage());
}
XmlRpcException перехватывается с сообщением:
Unable to create the XML parse: org.xml.sax.SaxNotRecognizedException: http://xml.org/sax/features/external-parameters-entities