2012-07-09 29 views
0

我試圖打電話給在Android這個XML-RPC方法(http://foxrate.org/)這個庫https://github.com/timroes/aXMLRPCAndroid的XML-RPC使用錯誤

調用代碼:

 XMLRPCClient client = new XMLRPCClient(new URL("http://www.foxrate.org/rpc/")); 
    try { 
     Object o = client.call("foxrate.currencyConvert", "USD","GBP",(double)1); 
    } catch (XMLRPCException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

它會生成正確的XML調用,但服務器返回Http錯誤代碼301. 當我嘗試使用POSTER插件從firefox執行此調用時,它工作正常。

回答

1

HTTP 301狀態碼錶示服務器希望轉發到另一個URL。

在這種情況下,它想要帶走「www」並重定向到foxrate.org/rpc。

如果您希望aXMLRPC客戶端遵循此重定向(不以其默認模式),請使用FLAGS_FORWARD flag。你的代碼的第一行應該是這樣的:

XMLRPCClient client = new XMLRPCClient(new URL("http://www.foxrate.org/rpc/"), FLAGS_FORWARD); 

你會發現更多的標誌 - 的情況下,別的情況(如無效的SSL證書)) - 在documentation

當然,你也可以使用http://foxrate.org/rpc直接作爲URL,但是這將是太簡單了:)(後來他們可能會改變它的一些其他重定向。)