XMLRPC IP.主板无法定位API模块



我有一个案例:通过论坛引擎IP.Board的API与论坛合作。

所以我写了下一个代码:

package ru.test;
import java.net.MalformedURLException;
import java.net.URL;
import org.apache.xmlrpc.XmlRpcException;
import org.apache.xmlrpc.client.XmlRpcClient;
import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
public class mainClass {
    /**
     * @param args
     */
    public static void main(String[] args) {
        XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
        try {
            config.setServerURL(new URL("http://hbf.by/interface/board/index.php"));
            XmlRpcClient client = new XmlRpcClient();
            client.setConfig(config);
            Object[] params = new Object[]{"74600b7376c4b1db69eaf8f155f2d157", "ipb","','"};
            Object result = client.execute("fetchOnlineUsers", params);
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (XmlRpcException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

但是我得到例外

org.apache.xmlrpc.XmlRpcException: IP.Board could not locate an API module called ''
    at org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTransport.java:197)
    at org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTransport.java:156)
    at org.apache.xmlrpc.client.XmlRpcHttpTransport.sendRequest(XmlRpcHttpTransport.java:143)
    at org.apache.xmlrpc.client.XmlRpcSunHttpTransport.sendRequest(XmlRpcSunHttpTransport.java:69)
    at org.apache.xmlrpc.client.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:56)
    at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:167)
    at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:137)
    at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:126)
    at ru.test.mainClass.main(mainClass.java:23)

怎么了?

在Documentation (http://community.invisionpower.com/resources/documentation/index.html/_/developer-resources/miscellaneous-articles/xml-rpc-api-r246)中说:

您应该向interface/board/index.php文件提交XML-RPC调用。你应该把所有的参数作为一个结构体发送。

每个请求必须提交两个参数:api_key -这应该是先前设置的密钥。Api_module -这应该是"ipb"。理论上,您可以创建其他模块,但"ipb"就是全部IP.Board.

我错在哪里

还有我怎么能得到方法。php文件?

我写URL http://hbf.by/interface/board/modules/ipb/methods.php

但得到空白页。

但是在Documentation中也说:

打开interface/board/modules/ipb/methods.php文件查看每个方法期望接收并返回的参数响应

可能是一些服务器需要配置,但在互联网上我找不到。

您的代码似乎与文档相符。

但是,XMLRPC通常在调用中像这样指定模块

Object result = client.execute("ipb.fetchOnlineUsers", params);

你可以试试

我找到问题所在了

don't use Object[] params = new Object[]{"74600b5f2d157", "ipb","','"};

用 代替

HashMap然后

Object result = client.execute("ipb. execute ")fetchOnlineUsers",new Object[] {hMap});

工作正常

最新更新