2016-04-01 24 views
-1

我試圖讓POST請求的響應狀態檢查-python

然後檢查響應報頭狀態碼

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()

th e結果是200即使結果是302-FOUND 有什麼想法?

回答

1

documentation for urllib2.urlopen

該函數返回三個附加 方法類似文件的對象:)

  • 的getURL( - 返回檢索到的資源的URL,常用來確定如果遵循重定向
  • info() - 以mimetools.Message實例的形式返回頁面的元信息(如標題)(請參閱快速參考 HTTP標題s)
  • getcode() - 返回響應的HTTP狀態碼。

所以你可以使用

status = response.getcode() 

在重定向的情況下的狀態,urlopen將自動跟隨重定向。使用response.geturl()並查看它是否與您指定的URL匹配。

+0

當我檢查插件的狀態(狀態爲302找到),如果沒有找到(狀態是200-確定),但getcode(),結果總是200! – Vendetta

+1

'urlopen()'可以自動跟蹤重定向,使用'response.geturl()'來查看它是否與你指定的URL不同。 –

+0

好吧,幫助我:) – Vendetta