网络爬虫(二)-----处理HTTP状态码

               我们在访问web资源的时候,会有下面语句

//获取响应状态码
int state=httpClient.executeMethod(getMethod);
                HTTP状态码表示HTTP协议所返回的响应状态。比如客户端向服务端发送请求,如果成功获得请求,则返回的状态码是200,表示响应成功,如果资源不存在,则通常返回404错误。

           HTTP状态码通常分为5种类型,分别以1~5五个数字开头,由3位数字组成。1xx通常做实验用途。 

                                                                                         常用的状态代码描述如下

网络爬虫(二)-----处理HTTP状态码_第1张图片

                          我们遇到状态码为3XX时,通常进行转向。

   

//遇到3xx状态码一般需要转向处理
if(state==3xx)
{      
//读取新的URL地址
Header header=postMethod.getResponseHeader("location");
if(header!=null)
{   
        String newURL=hearder.getValue();
if(newURL==null ||newURL.equals(""))
{      newURL="/";
 //使用post转向
PostMethod redirect=new PostMethod(newURL);
//发送请求
}
                         
}
}
               当获取的响应状态码为2xx时候,我们只需要处理200和202两种状态码。其他返回码可以不做进一步的处理。例如:

  

//处理返回值为200的状态码
if(state==HttpSattus.SC_OK)
{ 
input=postMethod.getResponsedBodyAsStream();
//得到文件名
String filename=path.substring(path.lastIndexOf('/')+1)
//获取文件输出流
output=new FileOutputStream(filename);
//输出文件
int tempByte=-1;
while(tempByte=input.read()>0)
{  output.write(tempByte);

}
}
对于202的状态码,表示请求已经接受,服务器在做进一步处理

你可能感兴趣的:(网络爬虫(二)-----处理HTTP状态码)