【发布时间】:2012-06-25 06:11:02
【问题描述】:
我正在尝试使用来自 android 的 Soap 调用 magento api,但出现 XMLpullparser 异常。我正在使用 ksoap 库。我在 google 上搜索但找不到任何解决方案。下面是我的代码..
1 import java.io.IOException;
2 import org.ksoap2.SoapEnvelope;
3 import org.ksoap2.serialization.SoapObject;
4 import org.ksoap2.serialization.SoapSerializationEnvelope;
5 import org.ksoap2.transport.AndroidHttpTransport;
6 import org.xmlpull.v1.XmlPullParserException;
7 import android.app.Activity;
8 import android.os.Bundle;
9 import android.util.Log;
10 public class MagentoSoapActivity extends Activity {
11 /** Called when the activity is first created. */
12 private static final String NAMESPACE = "urn:Magento";
13 private static final String Method_Name="login";
14 private static final String URL ="http://www,mymagento,com/api/soap/?wsdl=1";
15 private static final String SOAP_ACTION ="urn:Magento/login";
16 @Override
17 public void onCreate(Bundle savedInstanceState) {
18 super.onCreate(savedInstanceState);
19 setContentView(R.layout.main);
20 try {
21 SoapObject request = new SoapObject(NAMESPACE,Method_Name);
22 request.addProperty("username", "XXX");
23 request.addProperty("apiKey", "YYY");
24 SoapSerializationEnvelope envelopes = new SoapSerializationEnvelope(
25 SoapEnvelope.VER11);
26 envelopes.dotNet = false;
27 envelopes.xsd = SoapSerializationEnvelope.XSD;
28 envelopes.enc = SoapSerializationEnvelope.ENC;
29 envelopes.setOutputSoapObject(request);
30 AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport(URL);
31 androidHttpTransport.debug =true;
32 androidHttpTransport.call(SOAP_ACTION, envelopes);//Getting the Exception here
33 Object result = envelopes.getResponse();
34 Log.d("sessionId", result.toString());
35 //making call to get list of customers
36 String sessionId = result.toString();
37 request = new SoapObject(NAMESPACE,"customerCustomerList");
38 request.addProperty("sessionId",sessionId );
39 envelopes.setOutputSoapObject(request);
40 androidHttpTransport.call(SOAP_ACTION, envelopes);
41 result = envelopes.getResponse();
42 Log.d("Customer List", result.toString());
43 } catch (Exception e) {
44 e.printStackTrace();
45 }
46 }
47 }
下面是堆栈跟踪:
org.xmlpull.v1.XmlPullParserException: expected: START_TAG
{http://schemas.xmlsoap.org/soap/envelope/}Envelope (position:START_TAG <definitions
name='Magento' targetNamespace='urn:Magento'>@4:50 in
java.io.InputStreamReader@44f13f40)
请帮助我,我对这个错误感到非常沮丧。 提前致谢
【问题讨论】:
-
你正在编译什么java版本?
-
您的网址在“indieswebs.in/demostore/api/soap?wsdl=1”之间似乎有无效空格
-
@vipul:谢谢回复。我用的是jdk7,但我不认为是版本问题。
-
@Rajesh:谢谢回复。Url是正确的。空间问题是在发布但我编辑了它。您可以通过给定的URL检查webservice的响应。
标签: android magento soap ksoap2