范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

必须推荐给基友的Curl工具使用指南

  curl  是一个命令行工具,用于发送客户端请求。发送客户端请求大家常用的可能是类似postman  等工具,但是为什么要使用curl  呢?curl  等最大优势在于随时随手可以发送,非常方便。比如很多场景下我们只是想快速验证一个请求或接口:# 直接在命令行发送一个GET请求 curl https://xxx.com/api/v1/xxx  # 发送POST请求 curl -X POST -d "k1=123&k2=456" https://xxx.com/api/v1/xxx 复制代码
  curl安装
  curl  的安装就是到官网根据你的系统下载对应的版本进行安装,但是安装好后要配置环境变量。# 安装好后重启终端运行,查看版本 curl -V 复制代码
  如果能看到如下内容则是安装成功了:
  发送GET请求curl  后面直接添加url地址即可访问GET  请求curl https://www.baidu.com 复制代码
  请求百度网址的效果如下:
  发送 GET  请求携带请求参数curl https://www.xxx.com/?key=value1&key2=value2 复制代码POST请求
  -X POST --data "k1=v1&k2=v2"  发送post请求,并且携带请求数据。下面演示一个接收POST  请求并返回POST  数据的的Node  服务和CURL  发送POST  请求示例:/**  * http服务,处理post请求并将post数据返回  */ const http = require("http");  const server = http.createServer((req, res) => {   if (req.method === "POST" && hasbody(req)) {     const buffer = [];     req.on("data", (chunk) => {       buffer.push(chunk);     });     req.on("end", () => {       const rawBody = Buffer.concat(buffer).toString();       res.writeHead(200);       res.end(rawBody);     });   } else {     res.end("");   } });  server.listen(3000, () => {   console.log("server running at port 3000."); });  // 判断是否有body请求实体数据 function hasbody (req) {   return req.headers["transfer-encoding"] !== undefined ||     !isNaN(req.headers["content-length"]); } 复制代码
  curl  发送post  请求:curl -X POST --data "key1=123&key2=456" http://localhost:3000  # --data可以简写为-d curl -X POST -d "key1=123&key2=456" http://localhost:3000 复制代码
  对 post  数据进行url  编码# 注意,--data-urlencode的简写不是-d # --data的简写是-d curl --data-urlencode "k1=1&k2=a b"  http://localhost:3000 复制代码
  例如下面发送对请求数据中, a  和b  之间有个空格,使用--data-urlencode  会对其进行encodeURIComponent  编码:
  发送HEAD请求const http = require("http");  const server = http.createServer((req, res) => {   res.writeHead(200);   res.end(); });  server.listen(3000, () => {   console.log("server running at port 3000."); }); 复制代码
  -I   参数可以发送HEAD  请求:curl -I http://localhost:3000 复制代码
  发送DELETE请求
  -X DELETE  参数可以发送DELETE  请求:curl -X DELETE http://localhost:3000 复制代码
  发送PUT请求
  下面起一个非常简易的 node  服务,将用户上传的图片保存成图片:const http = require("http"); const fs = require("fs");  const server = http.createServer((req, res) => {   // 如果是PUT请求且访问的接口是/upload/file   if (req.method === "PUT" && req.url === "/upload/file") {     // 将用户的数据存成图片static/mime.png图片     const writeStream = fs.createWriteStream(__dirname + "/static/mime.png");     req.pipe(writeStream).on("finish", () => {       res.writeHead(200);       res.end("upload success");     });     writeStream.on("error", (err) => {       res.writeHead(500);       res.end("server error.");     });   } });  server.listen(3000, () => {   console.log("server running at port 3000."); }); 复制代码
  利用 curl  的-T  可以发送PUT  类型请求,同时需要指定上传的资源路径:curl -T ./mime.png http://localhost:3000/upload/file 复制代码
  同时请求结束后,可以看到上传的图片已经被保存下来了:
  curl下载文件
  下载保存文件是加 -o 保存地址  参数。# 将baidu的html文件下载到本地 curl -o ./my-download.html https://www.baidu.com 复制代码
  curl  命令执行的效果如下图,而且文件也已经被下载了下来:
  查看响应头参数
  -i  参数可以返回响应头信息curl -i  https://www.baidu.com 复制代码
  查看完整的报文信息-v  参数查看完整的报文信息curl -v https://www.baidu.com 复制代码
  --trace ./log.txt  查看更详细的信息并将数据写入到指定文件中。curl --trace ./log.txt https://www.baidu.com 复制代码
  --trace-ascii ./log.txt  以ascii编码格式查看更详细的信息并将数据写入到指定文件中。指定请求的user-agent
  我们启动一个最简单的 http  服务,并且配置好vscode  的debug  用于我们查看curl  发送的信息:const http = require("http");  const server = http.createServer((req, res) => {   // 在此处打上断点,查看req请求对象   res.end(""); });  server.listen(3000, () => {   console.log("server running at port 3000."); }); 复制代码
  如果直接通过 curl  发送GET  请求,可以看到user-agent  为:
  chrome  浏览器的user-agent  是Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36
  --user-agent "xxx"  可以指定发送请求时的user-agent  ,参数简写为-A  :curl --user-agent "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36" http://localhost:3000  # --user-agent简写为-A curl -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36" http://localhost:3000 复制代码
  指定请求的跳转
  --referer 跳转前url 跳转后url  curl --referer http://localhost:3000 http://localhost:3000/newpath 复制代码
  此时发送的请求的 req.url  是新的地址http://localhost:3000/newpath  ,并且headers  中携带了referer  字段。
  请求时携带cookie参数--cookie "k1=v1&k2=v2"  携带cookie  参数,--cookie  可以简写为-b  :curl --cookie "k=1&k2=2" http://localhost:3000  # --cookie简写为-b curl -b "k=1&k2=2" http://localhost:3000 复制代码
  curl  保存服务端的cookie  到指定文件
  为了使用 curl  时能携带服务端设置的cookie  ,我们可以先把服务的cookie  存到本地,然后后续使用curl  的适合再携带上。如下,有一个node  设置cookie  的例子:const http = require("http");  const server = http.createServer((req, res) => {   // Node设置cookie   res.writeHead(200, {     "Set-Cookie": "key1=value1&key2=value2",   });   res.end("cookie set success."); });  server.listen(3000, () => {   console.log("server running at port 3000."); }); 复制代码
  通过 curl  发送请求携带-c path/to/save  ,可以将node  设置的cookie  保存到本地:curl -c ./cookie http://localhost:3000 复制代码
  curl  发送请求时携带cookie  文件curl -b ./cookie http://localhost:3000 复制代码
  此时 debug  可以看到req  上已经携带了我们的cookie  :
  结束语
  curl  对于想随手快速验证一个服务是非常便利的,而且真是越用越好用。希望小伙伴看完这篇教程之后能够使用起来,帮助到大家平日的开发工作。
  原文地址:https://juejin.cn/post/7081685548271665183

不懂搭配就敢乱配色?难怪会显老气,学这些博主的穿搭,优雅高级嗨,各位小仙女们,大家好呀!在穿搭中,配色可是一门学问,如果你不懂搭配,就敢乱搭配颜色,那么带来的后果也就可想而知了,不是土气,就是显得花里胡哨的,对吧?所以,对于没有什么搭配经验这几个垃圾国货早用早享受!建议看看有没有你正在用的这几个垃圾国货早用早享受!建议看看有没有你正在用的讲真,国货真的是有好东西的就是要等着我们去挖掘的这几个真的就是我经常用的CJ熊果苷面膜(提亮杠杠滴)米云生姜洗发水(不怕掉发了)澳泰格豪雅潜水腕表耐用百搭,数字人阿喜试戴的NOMOS腕表当周腕表记者崔晓纯编辑楼婍沁全新泰格豪雅竞潜系列Professional300大坂直美限量版腕表如果要打造一款可满足人们工作兼运动需求的多功能腕表,与杰出的职业运动员合作设计一定不会出错。学院风变辣了有没有注意到,最近学院风变了。以前一说到学院风,大家想到的都是正儿八经的美式Preppy日本JK韩式田径套装时尚在于创新,现在很多人穿学院风追求的就是个氛围感,并非一定要全套按照严劝君春天里多吃些葱吧!缓解春困杀菌抗疲劳热胀冷缩是自然界的一个普遍现象,人体也一样,在寒冬腊月,人的皮肤处于收敛储蓄状态,血管收缩减少散热以抵御寒冷。一到春天,气温回升,皮肤的毛孔和血管渐渐扩张,使血液循环加快,这就减少老年人养护心脏健康,更需要补充5类营养素,8种食物不妨多吃点心血管疾病是老年人突发和导致死亡的主要疾病之一,随着年龄的增长,特别是到了60岁以后,老年人想要健康长寿,保护好心脏健康是非常重要的一个方面,而对于心脏健康的保护,除了医学上的检查2015年山东女子舍命产下5胞胎,最小的仅有鸡蛋大,医生紧急抢救文文渊说史编辑文渊说史前言您见过身高一米六肚围一米七的孕妇吗?2015年,山东有一位身材娇小的高龄孕妇舍命生下五胞胎,而这五个孩子刚出生时,在场所有人都感到不可思议,因为这几个孩子2011年广东孕妇舍命生下5胞胎,最小的仅有巴掌大,医生紧急抢救文史记新说编辑史记新说2011年,广州一位身材清瘦的孕妇肚子里却孕育着5个鲜活的小生命。这本是一件天大的喜事,可这5个小宝贝却在28周就要出生了,孕妇和医生都都紧张到了极致。这5个流星和航天器,在空气中穿梭的勇者流星雨,一直是宇宙中浪漫而神秘的存在,许多人都期待着亲眼目睹流星划破天际的美景。一般到了年底,能观测到的流星雨还有很多,比如11月份的猎户座流星雨,以及12月份的双子座流星雨等等。库仑定律(1)观察表明,两个静止的带电体之间的静电力除与电荷的数量及相对位置有关外,还依赖于带电体的大小形状及电荷的分布情况要用实验直接确立所有这些因素对静电力的影响是困难的。但是,如果带电体的纳维尔从太空中看,地球是一个美丽的蓝白相间的球体。一提到地球这个词,我们就会联想到这个画面。然而,在二十世纪以前,人类只能仰望星空,太空旅行只不过是一个梦想。几乎没有人想过去地球以外的另
腾讯视频回应多设备登录被封号最多可在2个设备上观影Tech星球2月13日消息,有网友反映称多台设备同时登腾讯视频账号被封的消息引发热议。该网友称,自己的腾讯视频账号登录了一台平板,三个手机,导致账号被封禁。(账号封禁期间平板和另一奖励来了!长治市人民政府通知为推动医药产业持续健康发展2月10日长治市人民政府印发长治市促进医药产业健康发展若干措施的通知下面和小编一起了解一下有哪些内容长治市促进医药产业健康发展若干措施一对年产值达7亿元的正视居民高负债对消费的影响头条创作挑战赛中国社科院学部委员国家金融与发展实验室理事长李扬近日在参加展望2023后疫情时代春暖花开峰会时表示,2020年,我国居民的债务余额可支配收入为137。9,同年,我国居房子土地卖不动,房地产税已在路上2023年1月,全国房地产企业销售数据出炉,同比大幅下滑全国TOP100房企实现销售操盘金额3542。9亿元,单月业绩规模同比降低32。5,环比降低48。6,相较于2022年2月降房车为什么如过街老鼠一样到处被驱赶?网友没有素质的车主太多房车是舶来品,起源于第一次世界大战的末期,作为一个可以移动的家,人们可以坐着房车去远方,到那些荒无人烟,远离城市或乡村的荒野中去享受户外生活的乐趣,在相当长的一段时间里,房车旅行已当下中国县域经济发展出路在哪?经过三年疫情,经济受到严重影响,作为中国经济重要组成部分县域经济受到冲击更大!1。产业基础薄弱,缺乏高科技竞争力强的企业,多是资源型劳动密集型产业。2。人才流失严重,县城每年高考后多地公布重大投资项目清单,豪掷近22万亿稳增长记者辛圆多年以来,重大项目投资在扩大有效投资助力稳住经济大盘中发挥着积极作用。截止到2月13日,至少已有上海广东山东福建等8个省份公布了2023年重大投资项目清单,总投资额近22万分布式资本为区块链游戏设计可持续经济系统免责声明本文旨在传递更多市场信息,不构成任何投资建议。文章仅代表作者观点,不代表MarsBit官方立场。小编记得关注哦来源MarsBit尽管交易量和用户数量大幅下降,但区块链游戏仍国际资本创纪录流入1500亿,中国股市2023年开门红文观察者网李泽西2023年,中国股市取得开门红,国际资本正在以历史性的速度流入中国的股市。截至2月13日闭市,今年国际资本已经通过沪港通和深港通(合称北向资金)购买了1500亿元的人民银行公布2023年首批罚单3家机构合计被罚超3500万元人民网北京2月13日电(记者罗知之)近日,人民银行网站披露了今年首批行政处罚信息,共15张罚单,涉及江苏银行股份有限公司中信证券股份有限公司和中信建投证券股份有限公司3家金融机构,儿研所开设学习困难门诊来源生命时报专家提醒,孩子成绩下滑,家长不必过度紧张,先与老师沟通找找原因本报记者徐盈首都儿科研究所今年5月开设学习困难门诊以来,想预约就诊的家长非常多,尤其是临近暑假,放出去的号