0

我不知道我调用sales_order.listMagento Store 方法的方式有什么问题。我从 Magento Store 得到的响应为零。实际上,Store 包含 5 个销售订单。
我使用的代码如下。
请有人帮助我,因为这是一个长期的问题,我无法找到它的解决方案。在此先感谢。

import java.util.HashMap;
import org.xmlrpc.android.XMLRPCClient;
import org.xmlrpc.android.XMLRPCException;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

    public class Dashboard extends Activity{
    Button loadProductList,loadSalesOrders;
    XMLRPCClient client;
    private Context mContext;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dashboard);
        client = new XMLRPCClient( "http://192.168.1.237/machinetest/index.php/api/xmlrpc");
        mContext=Dashboard.this;
        loadSalesOrders();
      }     

   public void loadSalesOrders()
    {
        Object[] productsGroupList = {" "};
        try 
        {
            productsGroupList = (Object[])client.callEx( "call", new Object[] {Utils.sessionId,  "sales_order.list"});
        }   
        catch (XMLRPCException e) {e.printStackTrace();}
        Toast.makeText(mContext, productsGroupList.toString(), Toast.LENGTH_LONG).show();
        for(Object o :productsGroupList) 
        {
        Log.i( "**APP_INFO", o.getClass().getName());
            HashMap map = (HashMap)o;
            Log.i( "Products Keys", "Keys"+map.keySet().toString()); 

        }
    }

}
4

1 回答 1

1

我正在使用相同的代码,它对我有用。你得到正确的会话 ID 了吗?

XMLRPC 库中可能存在一些问题。以下是 XMLRPC 库的两个更新类:XMLRPCSerializer.javaIXMLRPCSerializer.java. 在代码中替换这两个文件,它将起作用。

    String sessionId = "";
    client = new XMLRPCClient(URL);
    try {
        sessionId = (String)client.call("login", "tester", "tester");
        Log.d("MY_XMLRPC_SUCCESS_SESSION_ID", sessionId);
    }
    catch (XMLRPCException e) {
        Log.d("MY_XMLRPCException_MSG", e.getMessage());
    }

    Object[] customerOrderList = null;           
    try {
        customerOrderList = (Object[])client.callEx("call", new Object[]{sessionId, "sales_order.list"});
    } catch (Exception e) {
        Log.d("APP_INFO", "Exception: " + e.getMessage());
    }
于 2012-07-24T05:29:16.897 回答