之前用Python 2.7版本的httplib做接口測試時,運行代碼都是正常的,
最近開始用Python 3.3之后,再去看以前的代碼,發現import httplib出現錯誤:Unresolved import :httplib,
運行代碼時也報錯:ImportError: No module named 'httplib'
查找各種資料發現原來Python 2.x中的"httplib"模塊在Python 3.x中變成了"http.client",就怪之前只了解了兩個版本區別是print語句輸出在3.x中要加(),看來要詳細了解所有區別了~
附上代碼供參考,期望大家不會被這個報錯坑了~
2.7版本中的代碼實現:
import httplib import urllib reqheaders={ 'MobileType':'Android', 'DeviceToken':'xxxxxxxxx', 'OSVersion':'1.0.3', 'AppVersion':'14', 'Host':'192.xxx.x.xxxx'} reqconn=httplib.HTTPConnection("192.xxx.x.xxxx") reqconn.request("GET", "/Login?username=1416&password=123", None, reqheaders) res=reqconn.getresponse() print res.status, res.reason print res.msg print res.read()
3.3版本中代碼實現:
import http.client #修改引用的模塊 import urllib reqheaders={ 'MobileType':'Android', 'DeviceToken':'xxxxxxxxx', 'OSVersion':'1.0.3', 'AppVersion':'14', 'Host':'192.xxx.x.xxxx'} reqconn=http.client.HTTPConnection("192.xxx.x.xxxx") #修改對應的方法 reqconn.request("GET", "/Login?username=1416&password=123", None, reqheaders) res=reqconn.getresponse() print (res.status, res.reason) print (res.msg) print (res.read())
附參考資料