zoukankan      html  css  js  c++  java
  • python http server handle json

    用Python实现一个http server

    # python2
    # coding = utf-8
    
    from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler
    import json
    
    class RequestHandler(BaseHTTPRequestHandler):
        def _set_headers(self):
            self.send_response(200)
            self.send_header('Content-type', 'application/json')
            self.end_headers()
    
        def do_GET(self):
            response = {
                'status':'SUCCESS',
                'data':'hello from server'
            }
    
            self._set_headers()
            self.wfile.write(json.dumps(response))
    
        def do_POST(self):
            content_length = int(self.headers['Content-Length'])
            post_data = self.rfile.read(content_length)
            print 'post data from client:'
            print post_data
    
            response = {
                'status':'SUCCESS',
                'data':'server got your post data'
            }
            self._set_headers()
            self.wfile.write(json.dumps(response))
    
    def run():
        port = 80
        print('Listening on localhost:%s' % port)
        server = HTTPServer(('', port), RequestHandler)
        server.serve_forever()
    
    run()

    python post json的两种方法:

    # python2
    # coding = utf-8
    
    import json
    import urllib2
    
    data = {
        'key1':'value1',
        'key2':'value2'
    }
    
    req = urllib2.Request('http://server_ip:server_port')
    req.add_header('Content-Type', 'application/json')
    
    response = urllib2.urlopen(req, json.dumps(data))
    
    print(response.read())
    # python3
    # coding = utf-8
    
    import requests
    
    mydict = {
        'key1': 'value1',
        'key2': 'value2'
    }
    
    r = requests.post("host:port/post", json=mydict)
    print(r.status_code)
    print(r.json())
  • 相关阅读:
    大话设计模式---单一职责原则
    大话设计模式---策略模式
    计算机网络(二)
    计算机网络(一)
    栈与队列

    数据库面试题——基本概念
    链表
    【Essential c++】——(三)泛型编程风格
    【转载】学习JAVA WEB的路线
  • 原文地址:https://www.cnblogs.com/gattaca/p/7301282.html
Copyright © 2011-2022 走看看