Rails:验证Wordpress类型的博客ping服务是否正常工作

时间:2015-12-13 18:24:45

标签: ruby-on-rails ping xml-rpc

我为我的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的聪明方式?

1 个答案:

答案 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成员,表示成功。