2012-02-05 63 views
2

我需要使用我的Google AppEngine Java應用程序對UPC數據庫(www.upcdatabase.com)進行標準的XML-RPC調用。GAE - 如何進行XML-RPC調用?

我發現了很多關於在GAE中合併XML-RPC的信息,但找不到有關如何從 GAE撥打電話的任何信息。

任何幫助或例子,將不勝感激?

回答

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(); 
    } 

不知道它爲什麼會起作用,並且會喜歡解釋。

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),儘管如此實施這應該更容易。

+0

是不是Python? – 2012-02-05 03:42:52

+0

我經歷了那個......沒有真正從它得到任何東西......我只是手動製作XML,並通過UrlFetch使用標準的Java.NET POST ......該帖子似乎正在經歷罰款但XML仍然是一個痛苦... – 2012-02-05 15:29:39