【发布时间】:2011-10-24 11:22:03
【问题描述】:
我正在尝试从 android 客户端访问 magento Web 服务。它应该返回一个会话 id。我已经使用 apache 完成了这个 uing java 客户端,并且成功调用了该方法。 在尝试使用 android 客户端时,我如何得到 xmlpullparser 异常: 10-24 15:25:44.409:WARN/System.err(277):org.xmlpull.v1.XmlPullParserException:预期:START_TAG {http://www.w3.org/2001/12/soap-envelope}信封(位置:START_TAG @2:327 in java.io.InputStreamReader@ 44ee2268)
这是我试图访问登录方法的 wsdl 文件:
我的java代码:
public class DeviceClientActivity extends Activity {
/** Called when the activity is first created. */
private static final String NAMESPACE = "urn:Magento";
private static final String URL = "http://xxx.xxx.xx.xxx/magento/index.php/api/v2_soap?wsdl";
private static final String METHOD_NAME = "login";
private static final String SOAP_ACTION ="urn:Mage_Api_Model_Server_V2_HandlerAction";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log
.d("WS",
"--------------------- Webservice Part Begins ---------------------");
Log.d("WS", "1. SoapObject Construction");
SoapObject objsoap=new SoapObject(NAMESPACE, METHOD_NAME);
objsoap.addProperty("用户名", "alokxxxx");
objsoap.addProperty("apiKey", "xxxxxx");
Log.d("WS", "构造SOAP对象结束!!!");
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
Log.d("WS", "2. Envelop Created");
envelope.setOutputSoapObject(objsoap);
Log.d("WS", "3. Request Into Envelop");
AndroidHttpTransport httpTransport = new AndroidHttpTransport(URL);
httpTransport.debug = true;
Log.d("WS", "5. Transport Level to True");
try {
httpTransport.call(SOAP_ACTION, envelope);
//此处出错 WARN/System.err(277): org.xmlpull.v1.XmlPullParserException: 预期:START_TAG {http://www.w3.org/2001/12/soap-envelope}信封(位置:START_TAG @2:327 in java.io.InputStreamReader @44ee2268)
Log.d("WS", "6. httpTransport.call");
if (envelope != null)
{
SoapObject loresponse = (SoapObject) envelope.getResponse();
SoapObject logObject = (SoapObject)loresponse.getProperty("sessionId");
Log.d("WS", "logObject: "+logObject);
}
else
{
Log.d("WS", "Response Envelop Error");
}
} catch (IOException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
}
}
}
登录以寻求帮助:
DEBUG/WS(333): --------------------- Web 服务部分开始 -------------------- --
10-29 15:38:33.643: DEBUG/WS(333): 1. SoapObject 构造
10-29 15:38:33.673: DEBUG/WS(333): SOAP 对象的构造结束!!!
10-29 15:38:33.673: 调试/WS(333): 2. 已创建信封
10-29 15:38:33.673: DEBUG/WS(333): 3. 请求进入信封
10-29 15:38:33.683: DEBUG/WS(333): 5. 到 Trueorg.ksoap2.transport.AndroidHttpTransport@44eeb200 的传输级别
10-29 15:38:33.683:调试/尝试(333):在尝试块内
10-29 15:38:34.903:WARN/System.err(333):org.xmlpull.v1.XmlPullParserException:预期:START_TAG {http://schemas.xmlsoap.org/soap/envelope/}信封(位置:START_TAG @2:327 in java.io.InputStreamReader@ 44efbe90)
有什么建议吗?
谢谢。
【问题讨论】:
-
如果您有解决方案,请帮助我...我面临同样的问题...谢谢和问候。
标签: android android-ksoap2 xmlpullparser