csdn博客刷点击率(java代码)

此文为转载,亲测有效。

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.methods.GetMethod;


public class Test {

    private static volatile int number = 0;  
    private static final String url ="http://blog.csdn.net/chinacsharper/article/details/17514923"; 
    
    /**
     * @param args
     */
    public static void main(String[] args) {
        //简单的用一个线程池  
        ExecutorService es = Executors.newFixedThreadPool(30);  
        //线程的个数应该根据自家的网络来定.我家是10M网所以20个基本上就是上限了.  
        for(int i=0;i<20;i++){  
             Runnable r = new Runnable() {  
                    public void run() {  
                        refreshBlog();  
                    }  
            };  
            es.submit(r);  
        }  
    }
    
    /** 
        * refreshBlog 这个方法是相应请求 
        * @author heinz_ho 
        * @return void 
        */  
       public static  void refreshBlog(){  
         HttpClient httpClient = new HttpClient();    
         GetMethod getMethod = new GetMethod(url);   
         getMethod.setRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36 LBBROWSER");  
         //其实这里我也不太懂.我只是知道cookie的生成策略,但是因为 csdn会判断力过来的cookie是啥.必须加.  
         getMethod.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);  
         //偷懒就用了一个死循环  
         while(true) {    
               try {  
                //这句话会造成阻塞因为想网络发起请求.  
                   int statusCode = httpClient.executeMethod(getMethod);  
                   if (statusCode != HttpStatus.SC_OK) {    
                       System.out.print("失败:" + getMethod.getStatusLine());    
                   }    
                   System.out.println("你已经刷新了:"+number++);  
               } catch (Exception e) {    
                   System.out.print("请检查网络地址!");    
               } finally {    
                   getMethod.releaseConnection();    
               }    
         }     
       }  

}
原文地址:https://www.cnblogs.com/guwei4037/p/5616184.html