Reading JSON from SimpleHTTPServer Post data

前端 未结 2 1132
执笔经年
执笔经年 2020-12-01 03:34

I am trying to build a simple REST server with python SimpleHTTPServer. I am having problem reading data from the post message. Please let me know if I am doing it right.

2条回答
  •  余生分开走
    2020-12-01 04:11

    SimpleHTTPRequestHandler does not support POST. It's very simple indeed. Check out Klein whose server is a bit more full-featured.

    There's an example of a json PUT (pretty close to POST) here: https://pypi.python.org/pypi/klein/0.2.3

    import json
    
    from klein import Klein
    
    
    class ItemStore(object):
        app = Klein()
    
        def __init__(self):
            self._items = {}
    
        @app.route('/')
        def items(self, request):
            request.setHeader('Content-Type', 'application/json')
            return json.dumps(self._items)
    
        @app.route('/', methods=['PUT'])
        def save_item(self, request, name):
            request.setHeader('Content-Type', 'application/json')
            body = json.loads(request.content.read())
            self._items[name] = body
            return json.dumps({'success': True})
    
        @app.route('/', methods=['GET'])
        def get_item(self, request, name):
            request.setHeader('Content-Type', 'application/json')
            return json.dumps(self._items.get(name))
    
    
    if __name__ == '__main__':
        store = ItemStore()
        store.app.run('localhost', 8080)
    

提交回复
热议问题