关于网络爬虫httpUrlConn.getResponseCode()取不到值得问题

今天有个人加我为好友,莫名其妙的就问我有没有整过网络爬虫,其实我网络学的不是很好,就说了不会,爱着面子又说我给他问问,我有个同事以前好像搞过,结果页没找到人,就硬着头皮看了下就几行代码:

 

[html] view plain copy
 
  1. try {  
  2.             URL pageUrl = new URL("http://www.baidu.com/");  
  3.             HttpURLConnection httpUrlConn = (HttpURLConnection) pageUrl  
  4.                     .openConnection();  
  5.             int statusCode = httpUrlConn.getResponseCode();  
  6.             System.out.println(statusCode);  
  7.         } catch (Exception e) {  
  8.             e.printStackTrace();  
  9.         }  


网上找了点资料看了看,上面说,这个不能再main这个主线程中跑,要另起一个线程来运行。

 

于是我就试了下:

 

[html] view plain copy
 
  1. import java.net.HttpURLConnection;  
  2. import java.net.URL;  
  3.   
  4. public class TestUrl {  
  5.   
  6.     public static void main(String[] args) {  
  7.         Test t = new Test();  
  8.         Thread demo = new Thread(t);  
  9.         demo.start();  
  10.     }  
  11.       
  12. }  
  13.   
  14.   
  15. class Test implements Runnable {  
  16.   
  17.     @Override  
  18.     public void run() {  
  19.         // TODO Auto-generated method stub  
  20.         try {  
  21.             URL pageUrl = new URL("http://www.baidu.com/");  
  22.             HttpURLConnection httpUrlConn = (HttpURLConnection) pageUrl  
  23.                     .openConnection();  
  24.             int statusCode = httpUrlConn.getResponseCode();  
  25.             System.out.println(statusCode);  
  26.         } catch (Exception e) {  
  27.             e.printStackTrace();  
  28.         }  
  29.   
  30.     }  
  31.   
  32. }  

果然没问题了。这里记录下,下次有时间学习一下网络爬虫

 

 

api9 以后的sdk  ,访问internet资源需要另开线程(大致意思,没细查)。

posted @ 2016-02-26 21:18  代码缔造的帝国  阅读(1082)  评论(0编辑  收藏  举报