python3 http.client/server post传输json问题
任务:
自己写一个http.server/client传输json格式数据
从网上东拼西凑攒出来的,已经调通了。(PS:想感谢两位贴源码的大神,但是找不到原网页在哪了,抱歉!)
上代码:
http server端
from http.server import HTTPServer, BaseHTTPRequestHandler import json class Resquest(BaseHTTPRequestHandler): def do_POST(self): print(self.headers) print(self.command) req_datas = self.rfile.read(int(self.headers['content-length'])) print("--------------------接受client发送的数据----------------") res1 = req_datas.decode('utf-8') res = json.loads(res1) print(res) print("--------------------接受client发送的数据------------------") data1 = {'bbb':'222'} data = json.dumps(data1) self.send_response(200) self.send_header('Content-type', 'application/json') self.end_headers() self.wfile.write(data.encode('utf-8')) if __name__ == '__main__': host = ('localhost', 8888) server = HTTPServer(host, Resquest) print("Starting server, listen at: %s:%s" % host) server.serve_forever()
http client 端:
import http.client, urllib.parse import json diag1 = {'aaa':'111'} #要发送的数据 ,因为要转成json格式,所以是字典类型 data = json.dumps(diag1) headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"} conn = http.client.HTTPConnection('localhost', 8888) conn.request('POST', '/ippinte/api/scene/getall', data.encode('utf-8'), headers)#往server端发送数据 response = conn.getresponse() stc1 = response.read().decode('utf-8')#接受server端返回的数据 stc = json.loads(stc1) print("-----------------接受server端返回的数据----------------") print(stc) print("-----------------接受server端返回的数据----------------") conn.close()
运行结果:
server端(client to server)
client端(server back client)
对于json应用的例子
首先要知道的是type(json) = str,传输的时候也是以字符串格式传输,但其形式是字典:{‘aaa’:‘bbb’}。
在我的项目中,先利用json.dump()将字典转成json格式
dict1 = {'aaa':'111'} jstr = json.dumps(dict1)
此时,我们看到的type(jstr) = str
在client给server传输的时候,要将json转成字节流
jstr1 = jstr.encode('utf-8')
在server端接受到的client端消息的时候就要解码
jstr2 = jstr1.decode('utf-8')
然后再将json转为字典类型
jstr3 = json.loads(jstr2)
总结
打完收工~
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
安装Python和pygame及相应的环境变量配置(图文教程)
下面小编就为大家带来一篇安装Python和pygame及相应的环境变量配置(图文教程)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-06-06详解如何利用tushare、pycharm和excel三者结合进行股票分析
这篇文章主要介绍了详解如何利用tushare、pycharm和excel三者结合进行股票分析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2021-04-04Python pygorithm模块用法示例【常见算法测试】
这篇文章主要介绍了Python pygorithm模块用法,结合实例形式分析了pygorithm模块的功能、安装及针对常见算法的相关使用操作技巧,需要的朋友可以参考下2018-08-08
最新评论