Java SOAP WSDL请求适用于一种方法,但不适用于另一种方法—Android
我正在尝试从SOAP服务器中提取一些xml,以便在我的应用程序中使用。我已成功从服务器中提取一个对象,但无法提取另一个对象。我拉的第一个对象是用户的ID号。下面是我用来提取第一个ID号的代码:Java SOAP WSDL请求适用于一种方法,但不适用于另一种方法—Android,java,android,web-services,soap,wsdl,Java,Android,Web Services,Soap,Wsdl,我正在尝试从SOAP服务器中提取一些xml,以便在我的应用程序中使用。我已成功从服务器中提取一个对象,但无法提取另一个对象。我拉的第一个对象是用户的ID号。下面是我用来提取第一个ID号的代码: public class logInTask extends AsyncTask<String, Void, String> { private static final String SOAP_ACTION = ""; private static final St
public class logInTask extends AsyncTask<String, Void, String> {
private static final String SOAP_ACTION = "";
private static final String METHOD_NAME = "checkUserLogin";
private static final String NAMESPACE = "http://m";
private static final String URL = "-sensitive information here, just know that this ends with .cfc?wsdl-";
@Override
public String doInBackground(String... strings) {
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("usr", strings[0]);
request.addProperty("pwd", strings[1]);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try {
androidHttpTransport.call(SOAP_ACTION, envelope);
// SoapPrimitive resultsRequestSOAP = (SoapPrimitive) envelope.getResponse();
SoapObject resultsRequestSOAP = (SoapObject) envelope.bodyIn;
RESULT = resultsRequestSOAP.toString();
return RESULT;
} catch (Exception e) {
System.out.println("Error" + e);
return "NULL";
}
}
protected void onPostExecute(String result){
if(RESULT.contains("Password Incorrect")) {
alertDialog("Your password is incorrect. Please try again.");
} else if(RESULT.contains("User Not Found")) {
alertDialog("You have entered a non-existing username/email. Please try again.");
} else {
Log.i("BEGINNINGRESULT", RESULT);
RESULT = RESULT.substring(64);
RESULT = RESULT.substring(0, RESULT.indexOf(";"));
alertDialog(RESULT);
startNewIntent(RESULT);
}
}
}
现在,我转到另一个班级,参加一个主菜单式的活动。这里,我将使用上面字符串(3)中的整数,并将其输入到另一个SOAP请求中。以下是代码:
public class getUserRegistrations extends AsyncTask<String, Void, String> {
private static final String SOAP_ACTION = "";
private static final String METHOD_NAME = "getUserRegistrations";
private static final String NAMESPACE = "http://m";
private static final String URL = "-same url-";
@Override
public String doInBackground(String... userNumber) {
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
PropertyInfo user = new PropertyInfo();
user.setName("usr");
user.setValue(userNumber);
user.setType(String.class);
request.addProperty(user);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.debug = true;
try {
androidHttpTransport.call(SOAP_ACTION, envelope);
SoapObject resultsRequestSOAP = (SoapObject) envelope.getResponse();
androidHttpTransport.responseDump = requestDump;
MainMenuActivity.registrationsGrabbed = resultsRequestSOAP.toString();
return MainMenuActivity.registrationsGrabbed;
} catch (Exception e) {
System.out.println("Error" + e);
return "NULL";
}
}
protected void onPostExecute(String result) {
Log.i("userID", userID);
Log.i("dump", requestDump);
//Log.i("Registration XML:", registrationsGrabbed);
}
}
这会使应用程序崩溃。错误来自以下行:
Log.i("dump", requestDump);
//Log.i("Registration XML:", registrationsGrabbed);
我假设这些错误告诉我服务器没有响应,即使我发送的是相同类型的请求。谁能告诉我我做错了什么?如果您需要更多信息,请询问。多谢各位
09-04 15:23:25.313 28519-28519/co.cdat.emi E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: co.cdat.emi, PID: 28519
java.lang.NullPointerException: println needs a message
Log.i("dump", requestDump);
//Log.i("Registration XML:", registrationsGrabbed);