我正在尝试编写一个向浏览器发送“Hello World”的简单脚本。虽然我当前的脚本在localhost
上完美运行,但Heroku上出现了问题,我的脚本无法发送响应。我在浏览器上访问时看到“出了问题”。
以下是我的剧本的当前形式:
import socket
from random import choice
import os
if 'PORT' in os.environ:
HOST, PORT = '', int(os.environ['PORT'])
else:
HOST, PORT = '', choice(range(4000, 10000))
listen_socket = socket.socket()
listen_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
listen_socket.bind((HOST, PORT))
listen_socket.listen(1)
print 'Serving HTTP on port %s ...' % PORT
while True:
client_connection, client_address = listen_socket.accept()
request = client_connection.recv(4096)
print request
http_response = """\
HTTP/1.1 200 OK
Hello, World!
"""
client_connection.sendall(http_response)
client_connection.close()
从日志中,相关条目似乎是:
2015-08-02T14:07:51.824720+00:00 heroku[router]: sock=backend at=error code=H18 desc="Server Request Interrupted" method=GET path="/" host=pastethatcode.herokuapp.com request_id=7b9dd237-349d-4f3b-89db-645960f6f2de fwd="182.66.57.92" dyno=web.1 connect=2ms service=1ms status=503 bytes=40
另请注意,print request
行会在我的脚本中执行(即日志已从我的应用程序输出)。