首先,我要感谢StackOverflow及其所有成员过去几个月的android帮助。我的学习曲线很陡峭,我没有想到没有你的帮助我会走得这么远。
我需要将一个数组作为soap对象发送到Web服务,但不断从服务器获取“空提交的ID列表”响应。我希望有人可以告诉我原因。
我的代码如下:
public void FeedbackRead(String feedbackID) {
String soapMethod = "feedbackRead";
SoapObject request = new SoapObject(NAMESPACE, soapMethod);
request.addProperty(getProperty("patientLogin", PATIENT_LOGIN));
request.addProperty(getProperty("passwd", PATIENT_PASS));
request.addProperty(getProperty("IDsRead", new String[]{feedbackID}));
String res = doPost(request, soapMethod);
Log.i(soapMethod + "SOAP_RESPONSE ", res);
}
PropertyInfo方法是
private PropertyInfo getProperty(String name, String[] val) {
PropertyInfo info = new PropertyInfo();
info.name = name;
info.namespace = NAMESPACE;
info.type = PropertyInfo.VECTOR_CLASS;
Vector<String> vct = new Vector<String>();
for (int i = 0; i < val.length; i++)
vct.add(val[i]);
info.setValue(vct);
return info;
}
我应该如何将一个字符串数组添加到请求SoapObject中,以便将其发送到服务器?
好的,我知道soap对象属性是应该的,因为我已经将它们打印到logcat,它们应该是。我按照logcat粘贴在soap对象下面:
feedbackRead{patientLogin=patient1; passwd=pat1; IDsRead=[27d49cea-7968-457a-b377-7bd70bbca1a1, 27d49cea-7968-457a-b377-7bd70bbca1a2]; }
我接下来要做的是
String res = doPost(request, soapMethod);
可能出现什么问题?
Res始终包含消息:空提交的ID列表!
有没有办法转换它,所以我可以将它粘贴到我的浏览器窗口,看它是否有效?或者这是一个完全愚蠢的问题?
非常感谢,
伊莱恩。
答案 0 :(得分:0)
嗯......有很多地方可能出现问题。我将尝试解释如何检测这些位置并调试代码:
以这种方式记录您的请求和回复:
HttpTransportSE androidHttpTransport = new HttpTransportSE(serverUrl);
androidHttpTransport.debug = true;
androidHttpTransport.call(SOAP_ACTION, envelope);
Log.d("test", "request: " + androidHttpTransport.requestDump);
Log.d("test", "response: " + androidHttpTransport.responseDump);
并且......我不确定但是尝试不使用向量并按顺序添加数组属性:
request.addProperty(getProperty(“IDsRead”,feedbackID1)); request.addProperty(getProperty(“IDsRead”,feedbackID2)); request.addProperty(getProperty(“IDsRead”,feedbackID3));
希望这会有所帮助。祝你好运!