2012-12-03 42 views
0

我一直試圖解決以下問題很長一段時間。我試圖得到一個響應像200,401 eyc.It將是很好,如果你可以快速瀏覽下面的代碼我嘗試了兩種不同的方式,但沒有一個能夠像塊內所顯示的那樣工作。如果有人能幫助我,我會非常感激。TypeError:不受支持的操作數類型-python socket

"head="https://stackoverflow.com/questions/ask" 
host = "stackoverflow.com" 
port = 80 
try: 
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
except socket.error, msg: 
sys.stderr.write("[ERROR] %s\n" % msg[1]) 
sys.exit(1) 
try: 
sock.connect((host, port)) 
except socket.error, msg: 
sys.stderr.write("[ERROR] %s\n" % msg[1]) 
sys.exit(2) 


sock.send("HEAD %s HTTP/1.0\r\n\r\n")%(head) 
#this one gives me error" sock.send("HEAD head1 HTTP/1.0\r\n\r\n")%(head) 
TypeError: unsupported operand type(s) for %: 'int' and 'str'", my Url is string! 

sock.send("HEAD head HTTP/1.0\r\n\r\n") 
#gives error 404 

s=sock.recv(12) 
print s 
sock.close() 
sys.exit" 

回答

0
sock.send("HEAD %s HTTP/1.0\r\n\r\n")%(head) 

應該

sock.send("HEAD %s HTTP/1.0\r\n\r\n" % head) 

這是否有意義?這是一個操作順序 - 現在發送先發生,返回一個整數,你在其中嘗試使用%來進行字符串格式化 - 但是在整數運算符給你的模數,它需要另一個數字。

+0

嗨,謝謝你的幫助!我真的很感激。工作和意義!我不再有這個錯誤,但它仍然給我返回400,即使它是一個正確的網址。然後,如果我粘貼我的網址它工作正常。但對於我的程序,我需要能夠通過變量頭髮送鏈接。任何建議? –

+0

沒關係,工作完美。非常感謝! –

相關問題