我一直试图在下面解决这个问题很长时间。我正试图得到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"
答案 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)
这有意义吗?这是一个操作顺序 - 现在发送首先发生,返回一个整数,你试图使用%
进行字符串格式化 - 但是对于运算符给你模数的整数,后需要另一个数字它