TypeError:不支持的操作数类型-python套接字

时间:2012-12-03 02:21:46

标签: python sockets

我一直试图在下面解决这个问题很长时间。我正试图得到200,401 eyc的响应。如果你能快速查看下面的代码,那将会很棒。我尝试了两种不同的方式,但没有一个像块内所示的那样有效。如果有人能帮助我,我真的很感激。

"head="/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"

1 个答案:

答案 0 :(得分: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)

这有意义吗?这是一个操作顺序 - 现在发送首先发生,返回一个整数,你试图使用%进行字符串格式化 - 但是对于运算符给你模数的整数,后需要另一个数字它