我正在创建允许用户将产品添加到他的购物车并下订单的 Android 应用程序。为此,我正在使用 XMLRPC。
按照我已经完成的步骤
1.cart.create
2.cart_customer.set
3.cart_customer.addresses
4.cart_shipping.list
5.cart_shipping.method
6.cart_product.add
7.cart_payment.list
8.cart_payment.method
在 cart_payment.method 之前,所有代码都可以正常工作,但是当我调用 cart_coupon.add api 时出现异常
org.xmlpull.v1.XmlPullParserException: expected: START_TAG {null}methodResponse
(position:START_TAG (empty) <br>@1:7 in java.io.InputStreamReader@4151b450)
at org.kxml2.io.KXmlParser.require(KXmlParser.java:2046)
我的代码是:
client = new XMLRPCClient(url);
object = client.callEx("call", new Object[]{sessionId,
"cart_coupon.add",new Object[]{shoppingCardId,couponcode}});
其中 url 是有效的 magento 主机 url,shoppingCardId 是我从服务器获取的 CardId。
异常发生在类 XMLRPCClient,在行
pullParser.require(XmlPullParser.START_TAG, null, Tag.METHOD_RESPONSE);
我认为服务器用空白字符串回复,解析器找不到开始标签。
如果我通过 php 脚本调用相同的 api,cart_coupon.add 和 cart.order 工作正常,我得到订单 ID 作为响应,并且在服务器端的 sales->orders 中,我可以看到订单已成功下达。但是,当我从 Android 遵循相同的程序时,我得到了上述异常。
我应该怎么办?