网站外包项目,wordpress 手机 跳转,三星做号网站,百度是国企还是央企接着一#xff1a;可以通过端口访问公网IP之后 二需要实现#xff1a;点击飞书多维表格中的按钮#xff0c;向服务器发送HTTP请求#xff0c;并执行脚本程序
向服务器发送HTTP请求#xff1a;
发送请求需要明确一下几个点
请求方法#xff1a; 由于是向服务器端发送值…接着一可以通过端口访问公网IP之后 二需要实现点击飞书多维表格中的按钮向服务器发送HTTP请求并执行脚本程序
向服务器发送HTTP请求
发送请求需要明确一下几个点
请求方法 由于是向服务器端发送值因此选择的是POST请求请求的URL 请求的url就是http://公网IP:port/doc a. http不可以写成https,否则会报首次握手失败查询参数 查询参数通常是在URL末尾以?开头的多个参数使用连接 http://公网IP:port/doc?namelimingage30请求头 一般用于描述请求的格式认证信息和缓存控制等 比如AuthorizationContent-Type等 在终端-H “Content-Type: application/json” -H “Authorization: Bearer my_token” 形式存在请求体 客户端发送给服务器的数据部分通常用于提交表单发送JSON数据上传文件等 请求头中包含请求体的格式比如application/JSON,text/plain,multipart/form-dataapplication/X-www-form-urlencoded等
后端如何get上述请求中传输的变量
HTTP以不同形式传入的参数使用的get方法也是不一样 使用Flask处理HTTP请求
获取查询参数request.args.get(‘[变量名]’) get到的参数均是以字符串的形式存在
from flask import Flask, request
app Flask(__name__)app.route(/doc, methods[POST])
def api():# 获取查询参数name request.args.get(name) # 通过 request.args 获取 URL 查询参数age request.args.get(age)# 获取 POST 请求的 JSON 数据json_data request.json # request.get_json() 也可以return {query_params: {name: name, age: age}, body: json_data}if __name__ __main__:app.run(debugTrue)使用windows中的终端尝试是否能够访问端口并打印出内容如果少了一个参数可能会导致服务器返回500 Internal Server Error错误
curl -X POST http://[公网IP]:[端口号]/doc?namelimingage30获取请求头 request.headers.get()
user_agent request.headers.get(User-Agent)
auth_token request.headers.get(Authorization)获取请求体 总结
request.json # 解析 JSON 数据
request.form # 解析表单数据x-www-form-urlencoded
request.files # 解析文件multipart/form-data
request.data # 读取原始请求体a. Json请求体 request.json 在终端以 -d {“name”: “Alice”, “age”: 25}的形式存在
data request.json #这一句即可获取请求体b. 表单发送请求体 request.form.get() -d “usernamealicepassword123456”
username request.form.get(username)password request.form.get(password)c.文件上传请求体 -F “fileimage.jpg”
file request.files[file] # 获取上传的文件file.save(f./uploads/{file.filename})客户端向服务器发送HTTP请求
第一种方式requests请求适合API请求
发送请求
import requestsurl http://example.com/api
headers {Content-Type: application/json}
data {key: value}response requests.request(POST, url, headersheaders, jsondata)
print(response.json()) # 解析 JSON 响应
这种返回的是response.Response对象 可以通过方法返回想要得到的内容
response.status_code # 例如 200成功、400请求错误、500服务器错误
response.headers #服务器返回的HTTP的头部信息
response.text #以字符串的形式获取相应内容
response.content #以字节流的形式获取相应内容如果返回的是JSON数据
data response.json() # 解析 JSON 数据
data response.json().get(data) # 从json中提取data字段的值不会报错.json()用于解析服务器返回的json数据转化为python字段 .get(‘data’)从解析后的JSON字段中获取data字段的值
第二种方式http.client适用于底层的HTTP处理
import http.client
import jsonconn http.client.HTTPSConnection(example.com) # 需要指定域名
headers {Content-Type: application/json}
payload json.dumps({key: value}) # 需要手动转换为 JSON 字符串conn.request(POST, /api, payload, headers)
res conn.getresponse()
data res.read().decode(utf-8) # 需要手动解码print(data) # 这里是字符串需要再用 json.loads(data) 解析
区别