PythonでHTTP通信のレスポンスコードを取得する方法

2012/02/18

pythonでHTTP通信する場合、urllib, urllib2あたりを使うことが多いと思います。

手軽で簡単ではあるのですが、どちらもレスポンスコードを取得することができません。

 

  • urllibについては、python2.6以上であれば、urlopen().getcode()メソッドでサポートされているが、それ以前のバージョンではサポートされていない。
  • urllib2では、2xx系以外は例外が発生するためレスポンスコード取得できない。

 

「レスポンスコードをどうしても取得したい!」という場合は、httplibを使いましょう。

 

    conn = httplib.HTTPConnection(domain)
    conn.request("POST", urlpath, urllib.urlencode(postdata))
    resp = conn.getresponse()
    http_body = resp.read()

    print "response code: %d" % resp.status
    print "----------------- HTTP BODY ----------------"
    print http_body

 

こんな感じで、resp.statusにてレスポンスコードを参照することが可能です。

blog comments powered by Disqus
カテゴリー