我正在尝试使用gwtwiki Java库与私有wiki(Mint Linux上的MediaWiki 1.19.5)进行交互,但我在创建新的wiki页面时遇到了困难。
wiki运行正常,我可以很好地连接和编辑现有页面,但创建失败并显示错误:
info.bliki.api.UnexpectedAnswerException: The specified page was not found
我的代码:
Connector connection = new Connector();
User user = new User("username", "password", "http://xxxx/mediawiki/api.php");
connection.login(user);
StringBuilder page = new StringBuilder();
page.append("== Test page ==\r\n");
page.append("Some page text");
String title = Encoder.encodeTitleToUrl("Test page", true);
Edit newPage = Edit.create()
.title(title)
.text(page.toString());
try {
connection.edit(user, newPage);
} catch (UnexpectedAnswerException e) {
e.printStackTrace();
}
问题出现在库中,因为它是query
(在pageid
命令发出之前返回空edit
。该行在{{ 1 {} Connector.java中的方法:
edit(....)
使用调试器强制它通过空的pageid检查可以让我的页面创建成功。
那么,我做错了什么? gwtwiki是否支持页面创建?如果是这样,我该怎么做?
答案 0 :(得分:1)
作为一种解决方法,而不是完整的答案,我将Connector
类子类化,允许我覆盖编辑方法,以删除导致问题的pageId null检查。
我没有对它进行全面测试,因此可能会有其他影响,但这已经解决了我目前所要求的问题。如果我发现更好,更通用的方法,将会更新。