用Python新建一个支持响应JSON内容http服务器程序
时间: 2023-03-20 12:03:49 浏览: 212
要创建一个支持响应JSON内容的HTTP服务器程序,可以使用Python的内置模块`http.server`和`json`。以下是一个简单的示例程序:
```python
import http.server
import json
class MyHandler(http.server.BaseHTTPRequestHandler):
def do_GET(self):
response = {'message': 'Hello, world!'}
encoded_response = json.dumps(response).encode('utf-8')
self.send_response(200)
self.send_header('Content-type', 'application/json')
self.send_header('Content-Length', len(encoded_response))
self.end_headers()
self.wfile.write(encoded_response)
if __name__ == '__main__':
address = ('', 8000)
server = http.server.HTTPServer(address, MyHandler)
print(f'Starting server at {address[0]}:{address[1]}')
server.serve_forever()
```
这个程序创建了一个名为`MyHandler`的HTTP请求处理程序,覆盖了`BaseHTTPRequestHandler`类中的`do_GET`方法。当客户端发送GET请求时,服务器会返回一个JSON格式的响应,其中包含一个简单的消息。
在`do_GET`方法中,程序首先创建了一个名为`response`的字典,其中包含了要返回给客户端的信息。然后使用`json.dumps`将这个字典编码为JSON格式的字符串,并使用`encode`将其转换为字节流。
接下来,程序使用`send_response`方法发送HTTP响应状态码(200表示成功),并使用`send_header`方法设置响应头信息,包括内容类型为JSON和内容长度。然后使用`end_headers`方法结束响应头的发送,并使用`wfile.write`方法将响应体发送给客户端。
最后,在`main`函数中,程序创建了一个HTTP服务器对象,绑定了本地地址8000,并使用`serve_forever`方法开始监听请求。当有客户端连接时,服务器将调用`MyHandler`中的`do_GET`方法来处理请求,并返回JSON格式的响应。