Python HTTP获取请求(偶尔401 - 未经授权)

时间:2015-03-25 01:10:08

标签: python http get

我正在使用以下python脚本连接adsl调制解调器并检索wifi信息

host = 192.168.1.1
pwd = **********

conn = httplib.HTTPConnection(host)
auth = b64encode("admin:"+pwd).decode("ascii")
head = { 'Authorization' : 'Basic %s' %  auth }
conn.request("GET", "/basic/home_wlan.htm", headers = head)
resp = conn.getresponse()

#Do something ....

conn.close()

大多数情况下,evereything都可以,但有时会发生接收401 - Unauthorized http错误。 当我在此错误后重试执行immidiatly时,一切正常。现在,为了解决这个问题,我在#Do something...之前添加了以下代码:

if resp.status == 401:
    conn = httplib.HTTPConnection(host)
    auth = b64encode("admin:"+pwd).decode("ascii")
    head = { 'Authorization' : 'Basic %s' %  auth }
    conn.request("GET", "/basic/home_wlan.htm", headers = head)
    resp = conn.getresponse()

换句话说,如果401发生,我正在重复连接协商。在我看来,这样做并不是那么优雅。 有人可以给我一个更可接受的解决方案吗?

0 个答案:

没有答案