Python HTTP Get请求(非授权)
我正在使用以下python脚本连接adsl调制解调器并检索wifi信息Python HTTP Get请求(非授权),python,http,get,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", he
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()
大多数情况下,一切正常,但有时碰巧收到401-未经授权的http错误。
当我在此错误后立即重试执行时,一切正常。现在,为了克服这个问题,我在做某事之前添加了以下代码…:
换句话说,如果发生401,我将重复连接协商。在我看来,这样做并不优雅。有人能给我一个更容易接受的解决方案吗?大部分看起来像是路由器的故障。你可以把它变成一个函数,如果需要的话可以调用这个函数。你是说如果rep==401:?还是我遗漏了什么?@AntoinePelisse我认为这是最好的,从那以后你可以反复调用它。好的,让我来修正resp==404到resp==401@antoine-pelisse@jakekimds如果我的调制解调器出了问题,我很高兴接受这个丑陋的解决方案。也许我会加上一段时间,在给定的时间间隔内重试几次。问题是:我确定调制解调器有问题吗?也许我会尝试其他一些带有基本身份验证的网页来测试代码。
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()