0

我一直在尝试解决下面的问题很长时间。我正在尝试获得类似 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"
4

1 回答 1

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)

那有意义吗?这是操作的顺序 - 现在发送首先发生,返回一个整数,您尝试在其上%用于字符串格式化 - 但在整数上,运算符为您提供模数,后面需要另一个数字。

于 2012-12-03T02:28:13.140 回答