GAE - Как сделать вызов XML-RPC? - PullRequest
2 голосов
/ 05 февраля 2012

Мне нужно сделать стандартный вызов XML-RPC для базы данных UPC (www.upcdatabase.com) с помощью моего приложения Google AppEngine Java .

Я нашел много информации овключив XML-RPC в GAE, но не смог найти ничего о том, как позвонить из GAE.

Любая помощь или примеры будут признательны?

Ответы [ 2 ]

1 голос
/ 11 февраля 2012

Хорошо, что вы знаете ....

Я сделал следующее, используя библиотеку 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 голосов
/ 05 февраля 2012

Вот хорошая статья о том, как это сделать: 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), хотя, так что реализовать это должно быть намного проще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...