python 基础之 socket接口与web接口
python 网络编程 主要有socket模块、BaseHTTPServer模块。socket属于更底层次,方便在日常运维工作中使用, http web接口更适合开放给外部人员使用,毕竟大多数语言都很方便支持http请求。
首先看最基本socket客户端与服务端实例:
#!/usr/bin/python
#coding=utf-8
import socket
host = 'xx'
socketport = '1009'
flag = 'xxxx'sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((host, int(socketport)))
sock.send(flag)
recv = sock.recv(1024)
print "接收终端返回码:"+recv
sock.close()
#!/usr/bin/python
#coding=utf-8
import os
import sys
import commands
import traceback
import socket
reload(sys)
sys.setdefaultencoding('utf8')def oscmd(buf):cmdtype = buf.strip()##业务逻辑代码、处理完毕返回给客端#connection.send('sucess')# Step1: 创建socket对象
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 让socket支持地址复用 默认是不支持的
sock.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
# Step2: 配置socket 绑定IP和端口
sock.bind(('0.0.0.0', 1009))
# 设置最大允许连接数,各连接和server的通信遵循FIFO原则
sock.listen(1)# Step3: 循环轮询socket状态,等待访问
while 1:try:#获取连接connection,address = sock.accept()buf = connection.recv(10240)src_ip = address[0]src_port = str(address[1])print "接收提交请求:["+ buf +"] 发送源:["+ src_ip +":"+ src_port+"]"# Step4:处理请求数据,验证更新key,录入更新任务,返回处理结果oscmd(buf)except (KeyboardInterrupt, SystemExit):print "链接错误,请检查!"raise Exception
socket多线程,同时并发处理多个请求。加入了python多线程而已
def handle_connection(conn,addr)def main():# socket.AF_INET 用于服务器与服务器之间的网络通信# socket.SOCK_STREAM 基于TCP的流式socket通信serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 设置端口可复用,保证我们每次Ctrl C之后,快速再次重启serversocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)serversocket.bind(('192.168.2.221', 10089))# 可参考:https://stackoverflow.com/questions/2444459/python-sock-listenserversocket.listen(5)try:while True:conn,addr = serversocket.accept()t = threading.Thread(target=handle_connection, args=(conn,addr))t.start()finally:serversocket.close()
web接口客户端与服务端实例、服务端支持GET与POST请求
get请求
curl 192.168.11.xx:1009/api
post请求(json格式)
curl localhost:9999/api/daizhige/article -X POST -H "Content-Type:application/json" -d '"title":"comewords","content":"articleContent"'
#!/usr/bin/python
#encoding=utf-8
'''
基于BaseHTTPServer的http server实现,包括get,post方法,get参数接收,post参数接收。
'''
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
import io,shutil
import urllib
import os, sys
import commandsclass MyRequestHandler(BaseHTTPRequestHandler):def do_GET(self):mpath,margs=urllib.splitquery(self.path) self.do_action(mpath,margs)def do_POST(self):mpath,margs=urllib.splitquery(self.path)datas = self.rfile.read(int(self.headers['content-length']))self.do_action(mpath, datas)def do_action(self,args):self.outputtxt( args )def outputtxt(self, content):#指定返回编码enc = "UTF-8"content = content.encode(enc)f = io.BytesIO()f.write(content)f.seek(0)self.send_response(200)self.send_header("Content-type", "text/html; charset=%s" % enc)self.send_header("Content-Length", str(len(content)))self.end_headers()shutil.copyfileobj(f,self.wfile)def main():try:server = HTTPServer(('192.168.xx.219',1009),MyRequestHandler)print 'welcome to websocket'server.serve_forever()except KeyboardInterrupt:print 'shutting down server'server.socket.close()
if __name__ == '__main__':main()
python 基础之 socket接口与web接口相关推荐
- python自动化接口_Python接口自动化——Web接口
原标题:Python接口自动化--Web接口 1.2.1 web接口的概念 这里用一个浏览器调试工具捕捉课程管理页面请求作为例子: 当请求页面时,服务器会返回资源,将协议看做是路的话,http可以看做 ...
- python前端接口_Python接口自动化——Web接口
1.2.1 web接口的概念 这里用一个浏览器调试工具捕捉课程管理页面请求作为例子: 当请求页面时,服务器会返回资源,将协议看做是路的话,http可以看做高速公路,soap看做铁路传输的数据有html ...
- Python基础入门教程:Day21-30/Web前端概述
Python基础入门教程:Web前端概述 说明:本文使用的部分插图来自 Jon Duckett 先生的*HTML and CSS: Design and Build Websites*一书,这是一本非 ...
- Day1 - Python基础1作业【编写登陆接口】
1 # 作业:编写登陆接口 2 # 输入用户名密码 3 # 认证成功后显示欢迎信息 4 # 输错三次后锁定 5 import getpass 6 7 user = {'hepd':123456, 'h ...
- python基础之socket编程
阅读目录 一 客户端/服务器架构 二 osi七层 三 socket层 四 socket是什么 五 套接字发展史及分类 六 套接字工作流程 七 基于TCP的套接字 八 基于UDP的套接字 九 粘包现象 ...
- 麦子学院彭亮python基础_麦子学院python
教程名称:麦子学院python 麦子学院PYTHON ├─第一阶段:python基础准备 │xa0 ├─1.Web前端开发之HTML+CSS基础入门 │xa0 ├─2.Javascript初步 │xa ...
- 《Web接口开发与自动化测试 -- 基于Python语言》 ---前言
前 言 本书的原型是我整理一份Django学习文档,从事软件测试工作的这六.七年来,一直有整理学习资料的习惯,这种学习理解再输出的方式对我非常受用,博客和文档是我主要的输出形式,这些输出同时也帮 ...
- 【Web接口测试_基础概念】接口概念、接口分类、接口定义、接口规范、接口方法、接口用例设计整理
[接口基础] 1.接口测试概念 1.1 基础概念 接口的定义:接口英文"interface",表示某个对象和外界交互的部分. 1.2接口的分类: ①用户UI接口,表示提供给用户操作 ...
- 失业在家抠脚的我花了2个月,读完了这份《Python Web接口开发与测试》,我居然进华为了...
学习计划 失业在家抠脚到华为年薪25w测试工程师,我只花了2个月~ 底层逻辑 如果要进大厂,算法.底层.项目经验都要刷,小编以后会给大家更新各种面试题-- 如果要进大厂,项目经验.底层算法.网络.数据 ...
最新文章
- iOS判断UIWebView加载完成的方法
- Android dex分包方案 (多dex)
- Matlab变量、分支语句和循环语句
- 如何为libs目录下的jar包关联源代码
- CTR学习笔记代码实现1-深度学习的前奏LR-FFM
- map中key值带‘-’转json_h5模型转savedModel + tf_serving部署采坑记录
- Android IPC(二)Messenger实现跨进程双向通信
- 项目启动大会和项目开工会议的区别
- html修改成透明色,在html2canvas中将透明颜色更改为白色
- 缓存(Cookie,SessionStorage,localStorage)详解
- AM5728 linux内核编译方法
- ECCV 2022全奖项公布,两位华人学者摘得最佳论文奖,本科来自清华、浙大
- 正则表达式 语法详解
- 加速网站访问的一些实践体会
- 京东商城(360Buy)价格识别 java版
- c语言红酒编程题,葡萄酒基础知识试题解析一
- 防伪热点:洪都拉斯推出钞票设计,暗示独立二百周年!
- git clone之后修改了东西 推到远程库去
- RoboMasterAI挑战赛-装甲板识别与测距 jetsonNX+realsense
- 马斯克回应被联合国逼捐?发中文《七步诗》引热议