我已经设置了一个小脚本,可以为客户端提供 html。
import socket
sock = socket.socket()
sock.bind(('', 8080))
sock.listen(5)
client, adress = sock.accept()
print "Incoming:", adress
print client.recv(1024)
print
client.send("Content-Type: text/html\n\n")
client.send('<html><body></body></html>')
print "Answering ..."
print "Finished."
import os
os.system("pause")
但它在浏览器中显示为纯文本。你能告诉我需要做什么吗?我只是无法在谷歌中找到对我有帮助的东西..
谢谢。
最佳答案
响应 header 应包含指示成功的响应代码。 在 Content-Type 行之前,添加:
client.send('HTTP/1.0 200 OK\r\n')
另外,为了让测试更显眼,在页面中放一些内容:
client.send('<html><body><h1>Hello World</body></html>')
发送响应后,关闭连接:
client.close()
和
sock.close()
正如其他张贴者所指出的,每行以 \r\n
而不是 \n
结束。
请问那些补充,我是能够运行成功的测试。在浏览器中,我输入了 localhost:8080
。
所有代码如下:
import socket
sock = socket.socket()
sock.bind(('', 8080))
sock.listen(5)
client, adress = sock.accept()
print "Incoming:", adress
print client.recv(1024)
print
client.send('HTTP/1.0 200 OK\r\n')
client.send("Content-Type: text/html\r\n\r\n")
client.send('<html><body><h1>Hello World</body></html>')
client.close()
print "Answering ..."
print "Finished."
sock.close()
关于python - 使用 python 发送 http header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8315209/