当前位置: 首页 > news >正文

rust实现一个post小程序

主要是白天折磨了半天,无论如何post出去都不能成功,搞得我专门修改了一堆server的代码,以拦截任何访问服务器的数据,结果还是返回502,结果晚上回来一遍过,也真是奇怪的不行。先把一遍过的代码放出来,防止哪天又卡在这儿过不去。

//main.rs
use reqwest::Error;//main.rs
async fn post_request() -> Result<(), Error> {let url = "http://localhost:30241/dfc/get_block_stock";let json_data = r#"{"block_source": "gnn"}"#;let client = reqwest::Client::new();let response = client.post(url).header("Content-Type", "application/json").body(json_data.to_owned()).send().await?;println!("Status Code: {}", response.status());let response_body = response.text().await?;println!("Response body: \n{}", response_body);Ok(())}#[tokio::main]
async fn main() -> Result<(), Error> {post_request().await?;Ok(())
}

Cargo.toml文件如下:

[package]
name = "untitled"
version = "0.1.0"
edition = "2021"# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html[dependencies]
tokio = { version = "1.15", features = ["full"] }
reqwest = { version = "0.11.22", features = ["json"] }

意思很简单,就是访问路径为/dfc/get_block_stock,json数据为:

{"block_source": "gnn"}

后面就是打印结果了。居然直接一遍过了,在公司可是花了好几小时查遍了所有资料,也改遍了服务器的代码。

最后再贴出服务器的python测试代码:my_http_server.py

from sanic import Sanic
from sanic import response, request
from sanic_cors import CORSapp = Sanic(name='my-http-server')
CORS(app)def success_msg(err_code=0):res = dict()res["err_code"] = err_coderes["err_msg"] = "success"return res@app.middleware("response")
def cors_middle_res(request: request.Request, response: response.HTTPResponse):"""跨域处理"""allow_origin = '*'response.headers.update({'Access-Control-Allow-Methods': 'POST, GET, OPTIONS, PUT, DELETE','Access-Control-Allow-Headers': 'Accept, Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization',})@app.route("/dfc/get_block_stock", methods=['POST'])
async def order_buy_sell(request):print("order_buy_sell: from: {}, path: {}, data: {}".format(request.socket[0], request.path, request.json))res = success_msg(0)result = dict()res["result"] = resultreturn response.json(res)

然后是main.py

from my_http_server import app# Press the green button in the gutter to run the script.
if __name__ == '__main__':try:port = 30241print("my-http-server will started, serving at http://localhost:{}".format(port))app.run(host="0.0.0.0", port=port)except KeyboardInterrupt:print("python-sanic-http-server error.")

最后由于服务器运行用到了sanic组件和一个跨域组件,所以最后记得

pip install sanic
pip install sanic_cors

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • MySQL 多表查询
  • 二叉树的遍历的递归与非递归算法
  • 【C语言】结构体、枚举、联合(自定义类型)
  • 如何使用vscode启动Flask并实现无公网IP远程访问内网服务
  • 解锁金融数据中心场景,实现国产化AD替代,宁盾身份域管为信创电脑、应用提供统一管理
  • Maven POM元素解析
  • Rust 实战练习 - 9. 文本编码,URL编码,加密解密
  • 汽车EDI:如何与奔驰建立EDI连接?
  • pta L-007 念数字
  • LeetCode热题Hot100 - 有效的括号
  • Golang | Leetcode Golang题解之第17题电话号码的字母组合
  • SQL SERVER 备份
  • jenv实现mac下多版本jdk管理以及切换
  • 【AcWing】蓝桥杯集训每日一题Day14|Flood Fill|洪水灌溉算法|DFS|并查集|687.扫雷(C++)
  • Python读取Excel根据每行信息生成一个PDF——并自定义添加文本,可用于制作准考证
  • Javascript基础之Array数组API
  • Laravel Telescope:优雅的应用调试工具
  • linux安装openssl、swoole等扩展的具体步骤
  • Protobuf3语言指南
  • Vue.js源码(2):初探List Rendering
  • webgl (原生)基础入门指南【一】
  • win10下安装mysql5.7
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 从tcpdump抓包看TCP/IP协议
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 猴子数据域名防封接口降低小说被封的风险
  • 浅谈web中前端模板引擎的使用
  • 人脸识别最新开发经验demo
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 通过npm或yarn自动生成vue组件
  • 想写好前端,先练好内功
  • HanLP分词命名实体提取详解
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • ‌分布式计算技术与复杂算法优化:‌现代数据处理的基石
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (3)STL算法之搜索
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (LeetCode C++)盛最多水的容器
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (贪心 + 双指针) LeetCode 455. 分发饼干
  • (转载)(官方)UE4--图像编程----着色器开发
  • ******之网络***——物理***
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • . Flume面试题
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .NET 5种线程安全集合
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .NET 发展历程