Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
163 views
in Technique[技术] by (71.8m points)

Python's BaseHTTPServer returns junky responses

I use Python's BaseHTTPServer and implement the following very simple BaseHTTPRequestHandler:

class WorkerHandler(BaseHTTPRequestHandler):

    def do_GET(self):
        self.wfile.write('{"status" : "ready"}')
        self.send_response(200)

When I run a GET query from the web browser, by simply going to localhost:port, I get the following response:

{"status" : "ready"}HTTP/1.0 200 OK
Server: BaseHTTP/0.3 Python/2.7.12
Date: Mon, 09 Jan 2017 12:45:13 GMT

I only want the JSON. How can I make the server not sending this junky data?

HTTP/1.0 200 OK
Server: BaseHTTP/0.3 Python/2.7.12
Date: Mon, 09 Jan 2017 12:45:13 GMT
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Finally succeeded fixing it myself. Sharing with you:

class WorkerHandler(BaseHTTPRequestHandler):

    def do_GET(self):
        self.send_response(200)
        self.end_headers()
        self.wfile.write('{"status" : "ready"}')

Swapped the send_response and wfile.write. Also added end_headers after send_response


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...