mhinze.com archive

this is an archive of the old blog, ended 6/16/08





    27
    Feb

    pinging technorati technique, code

    the technique: trick to increase technorati rank

    the output:

    C:\\>type c:\\urls.txt
    http://www.testerson.com|Testerson
    http://www.testertown.com|Testertown
    C:\\>XmlrpcPing.exe c:\\urls.txt
    Success: http://www.testerson.com
    Success: http://www.testertown.com
    
    C:\\>XmlrpcPing.exe c:\\urls.txt
    Failed: http://www.testerson.com You just sent a ping, please only ping when you update
    Failed: http://www.testertown.com You just sent a ping, please only ping when you update
    



    the quick & dirty c# code to repeatedly xmlrpc ping technorati (some heavy lifting here)

    [csharp]
    class Program
    {
    static void Main(string[] args)
    {
    if (args[0] != null)
    {
    string url, name, output;
    string[] urlnames = File.ReadAllLines(args[0]);
    foreach (string urlname in urlnames)
    {
    url = urlname.Split('|')[0];
    name = urlname.Split('|')[1];
    if (Send("http://rpc.technorati.com/rpc/ping", name, url, out output))
    Console.WriteLine("Success: {0}", url);
    else Console.WriteLine("Failed: {0} {1}", url, output);
    }
    }
    }

    public static bool Send(string pingUrl, string name, string url, out string output)
    {
    try
    {
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(pingUrl);
    request.Method = "POST";
    request.ContentType = "text/xml";
    Stream pingstream = (Stream)request.GetRequestStream();
    XmlTextWriter xtw = new XmlTextWriter(pingstream, Encoding.UTF8);
    xtw.WriteStartDocument();
    xtw.WriteStartElement("methodCall");
    xtw.WriteElementString("methodName", "weblogUpdates.ping");
    xtw.WriteStartElement("params");
    xtw.WriteStartElement("param");
    xtw.WriteElementString("value", name);
    xtw.WriteEndElement();
    xtw.WriteStartElement("param");
    xtw.WriteElementString("value", url);
    xtw.WriteEndElement();
    xtw.WriteEndElement();
    xtw.WriteEndElement();
    xtw.Close();
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    StreamReader respSr = new StreamReader(response.GetResponseStream());
    XmlDocument xml = new XmlDocument();
    string pingResponseXml = respSr.ReadToEnd();
    xml.LoadXml(pingResponseXml);
    respSr.Close();
    response.Close();
    output = xml.SelectSingleNode("methodResponse/params/param/value/struct/member[2]/value").InnerText;
    return "0" == xml.SelectSingleNode("methodResponse/params/param/value/struct/member[1]/value/boolean").InnerText;
    }
    catch (Exception ex)
    {
    output = ex.Message;
    return false;
    }
    }
    }

    [/csharp]

    questions? leave a comment

    Leave a Reply

    © 2007 mhinze.com