检查响应状态-PYTHON

时间:2016-04-01 19:37:18

标签: python

我想尝试 POST REQUEST

然后检查响应头状态代码

200或302

import urllib
import urllib2

url = 'url' #url
values = {'name' : 'Michael Foord',
          'location' : 'Northampton',
          'language' : 'Python' } #post data

data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)

当我尝试

response.getcode()

即使结果是302-FOUND,结果也是200 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

来自documentation for urllib2.urlopen

  

此函数返回一个类似文件的对象,另外还有三个   方法:

     
      
  • geturl() - 返回检索到的资源的URL,通常用于确定是否遵循重定向
  •   
  • info() - 以mimetools.Message实例的形式返回页面的元信息,例如标题(请参阅快速参考   HTTP标头)
  •   
  • getcode() - 返回响应的HTTP状态代码。
  •   

所以你可以使用

获得状态
status = response.getcode()

如果是重定向,urlopen将自动跟随重定向。使用response.geturl()查看它是否与您指定的网址匹配。