2011-08-25 65 views
3
import urllib.parse 
    import urllib.request 
    import time 
    def __init__(self, parent= None): 

    QtGui.QWidget.__init__(self,parent) 
    self.ui = Ui_MainWindow() 
    self.ui.setupUi(self) 
    username = 'name' 

    password = 'pass' 
    while True: 
      try: 
       page=urllib.request.urlopen('http://10.100.56.55:8090/httpclient.html','&username='+username+'@da-iict.org&password='+password+'&btnSubmit=Login') 
       the_page=page.read() 

我一直在試圖讓這段代碼工作。在Python替代2個工程得很好,但在Python V3.2我得到的錯誤「POST數據應該是字節或字節的數量可迭代無法使用urllib發佈數據到登錄表格python v3.2.1

+0

我一直在試着讓這段代碼工作。工作得很好,但在Python v3.2中我得到的錯誤「** POST數據應該是字節或可反覆數量的字節** – nightf0x

回答

3
import urllib.parse 
import urllib.request 
import time 

username = 'name' 
password = 'pass' 

tm = 60 

while True: 
    url = "http://10.100.56.55:8090/httpclient.html" 
    values = {'username': username, 'password': password, 'btnSubmit':'Login'} 
    data = urllib.parse.urlencode(values) 
    binary_data = data.encode('ascii') 
    req = urllib.request.Request(url, binary_data) 
    urllib.request.urlopen(req) 

在Python3他們已經改變它,這樣的數據需求如果你的用戶名/密碼不包含任何非ASCII字符,那麼ASCII是好的。

+0

我現在明白了這個問題。但是代碼似乎還沒有起作用。它在page = urllib.request.urlopen(url,binary_data)中說錯誤。 http.client.BADSTATUSLINE:'' – nightf0x

+0

固定它,檢查出來 –

+0

nope沒有工作相同的錯誤。 – nightf0x