我已经开始使用 Apache RPC 客户端库在 Java 中实现博客 ping 服务。但是,我有点困惑,我似乎无法找到一个明确的规范来说明博客 ping 响应应该是什么样子来检查它是否成功。
我看过这个,这似乎是一个(官方的?)pingback 规范。
http://www.hixie.ch/specs/pingback/pingback-1.0
但是,这提到将返回故障代码,例如
http://xmlrpc-epi.sourceforge.net/specs/rfc.fault_codes.php
许多 RPC 服务器(例如 Google 博客搜索)似乎在其 XML 响应中返回了“flerror”和“消息”元素,这似乎更类似于以下内容:
http://xmlrpc.scripting.com/weblogsCom.html
这里发生了什么?我意识到 pingback 是一种网络入侵的东西,它成为了一种标准——但我对编码的内容感到困惑,或者确实信任响应。我可以相信下面的吗?它适用于所有博客 ping 服务器吗?
public boolean ping( String urlToPing, String title, String url, String urlChanges, String urlRSS ) throws MalformedURLException, XmlRpcException
{
XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
config.setServerURL( new URL( urlToPing ) );
XmlRpcClient client = new XmlRpcClient();
client.setConfig( config );
Object[] params = new Object[] { title, url, urlChanges, urlRSS };
HashMap result = ( HashMap )client.execute( "weblogUpdates.extendedPing", params );
try
{
errors.put( url, Boolean.parseBoolean( result.get( "flerror" ).toString() ) );
}
catch( Exception e )
{
log.error( "RPC Problem Parsing response to Boolean trying: " + result.get( "flerror" ) );
}
return Boolean.parseBoolean( result.get( "flerror").toString()) ;
}