java - XMLRPC IP.Board 无法找到名为的 API 模块

标签 java xml-rpc xmlrpcclient

我有一个案例:通过 Forum Engine 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();
        }

    }

}

但是我得到了异常(exception)

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)

出了什么问题?

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

You should submit XML-RPC calls to the interface/board/index.php file. You should send all parameters as a struct.

Every request must submit two parameters: api_key - this should be the key set up earlier. api_module - this should be "ipb". Theoretically, you can create other modules, but "ipb" is all that ships with IP.Board.

我犯错的地方。

我如何获取methods.php文件?

我写的是网址http://hbf.by/interface/board/modules/ipb/methods.php

但是得到空白页。

但也在文档中说:

Open the interface/board/modules/ipb/methods.php file to see which parameters each method expects to receive and will send back in response

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

最佳答案

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

但是,XMLRPC 通常在调用中指定模块,如下所示

对象结果 = client.execute("ipb.fetchOnlineUsers", params);

你可以尝试一下。

关于java - XMLRPC IP.Board 无法找到名为的 API 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7834285/

相关文章:

events - 在 XML-RPC 或 SOAP 中实现回调

java - JSP 类属性无效

java - 游戏的继承/界面设计

java - FFmpeg 停止从 104 MB 开始读取流数据

java - 我可以在java中使用xmlrpc传递一个对象吗

wordpress - 我可以通过 xmlrpc 删除未附加的媒体吗?

python - 为什么 xmlrpc 客户端不能将项目附加到可通过 xmlrpc 服务器过程访问的列表?

java - XmlRpcClient 解析具有多个变量类型的响应

java - 用Java绘制图形

java - 在 apache xmlrpc 客户端中记录输入/输出 xml