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())
  • 相关阅读:
    hdu 4614 线段树 二分
    cf 1066d 思维 二分
    lca 最大生成树 逆向思维 2018 徐州赛区网络预赛j
    rmq学习
    hdu 5692 dfs序 线段树
    dfs序介绍
    poj 3321 dfs序 树状数组 前向星
    cf 1060d 思维贪心
    【PAT甲级】1126 Eulerian Path (25分)
    【PAT甲级】1125 Chain the Ropes (25分)
  • 原文地址:https://www.cnblogs.com/gattaca/p/7301282.html
Copyright © 2011-2022 走看看