我为我的Ruby on Rails应用程序创建了一个博客,为此我创建了一个ping服务来ping Technorati等博客门户,以便我的博客出现在它们中。简化的代码:
blog_name = "My blog"
blog_url = "http://www.myblog.com"
list_of_pings = [
'http://rpc.twingly.com',
'http://rpc.technorati.com/rpc/ping',
'http://ping.feedburner.com/',
'http://blogpeople.net/ping'
]
list_of_pings.each do |target_url|
server = XMLRPC::Client.new2(URI.parse(target_url).to_s)
begin
result = server.call("weblogUpdates.ping", blog_name, blog_url)
logger.info "OK"
rescue XMLRPC::FaultException => e
logger.error(e)
logger.info "Fail"
rescue
logger.info "Other fail"
end
end
据我所知,这工作正常,但我无法验证,所以我不知道。当我检查"最近更新"我ping的网站上的部分(比我上面的示例多了20多个)我从来没有找到我的博客所以我希望它可能实际上不起作用。
有没有办法测试和验证接收端如何接收ping?是否有一个Web服务来测试这样的ping或任何其他我可以测试我的博客ping的聪明方式?
答案 0 :(得分:1)
weblogUpdates.ping
RCP请求有一个规范。 Twingly在他们的网站上有文档(https://developer.twingly.com/resources/rpc-ping/),成功回复如下:
<?xml version="1.0" ?>
<methodResponse>
<params>
<param>
<value>
<struct>
<member>
<name>flerror</name>
<value>
<boolean>0</boolean>
</value>
</member>
<member>
<name>message</name>
<value>
<string>Thanks for the ping.</string>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>
每个服务的message
可能会有所不同,但一般来说,它们都有flerror
成员,表示成功。