zoukankan      html  css  js  c++  java
  • 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();    
                   }    
             }     
           }  
    
    }
  • 相关阅读:
    设置navigationbar透明度时的坑
    NSOprationQueue 与 GCD 的区别与选用
    CALayer及其子类
    ARC基本原理
    drawRect:和layoutSubview的区别
    NSDictionary 和NSArray 排序(sort)
    iOS常用动画
    项目托管到Github上
    解析歌词
    计算字符串的长度值
  • 原文地址:https://www.cnblogs.com/guwei4037/p/5616184.html
Copyright © 2011-2022 走看看