GAE - 如何进行XML-RPC调用?

时间:2012-02-05 03:30:28

标签: java google-app-engine xml-rpc

我需要使用我的Google AppEngine Java 应用程序对UPC数据库(www.upcdatabase.com)进行标准的XML-RPC调用。

我在GAE中找到了很多关于合并XML-RPC的信息,但是找不到任何关于如何从 GAE打电话的信息。

任何帮助或示例都会受到赞赏吗?

2 个答案:

答案 0 :(得分:1)

嗯,你知道什么......

我使用Redstone XMLRPC库执行了以下操作,它可以正常工作。不会想到所有关注使用URLFetch。

XmlRpcClient client = new XmlRpcClient("http://www.upcdatabase.com/xmlrpc", false);
    Map<String, String> params = new HashMap<String, String>();
    params.put("rpc_key", rpc_key);
    params.put("ean",upc);

    HashMap<?,?> token = null;
    try {
        token = (HashMap<?, ?>) client.invoke( "lookup", new Object[] { params } );
    } catch (XmlRpcException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (XmlRpcFault e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

不太清楚为什么会这样,并且会喜欢解释。

答案 1 :(得分:0)

这是一篇关于如何做的好文章:http://brizzled.clapper.org/blog/2008/08/25/making-xmlrpc-calls-from-a-google-app-engine-application/

编辑:对不起,我想念你特意询问Java。但是,基本思想在两种语言中都是相同的:发出UrlFetch请求。

这是我在一些讨论中找到的另一个博客:http://blog.techstacks.com/2010/01/xmlrpc-with-gae-java.html - 这个使用HTTPBuilder,因为在编写它时,UrlFetch不允许设置User-Agent。这已得到修复(参见http://googleappengine.blogspot.com/2009/04/sdk-version-121-released.html),但实现这一点应该会容易得多。