cURL是常用的URL命令行请求工具,常用于Linux系统中,向Web Server发送请求。它的名字就是客户端(client)的 URL 工具的意思。以下示例,我们以CentOS 7.9为演示环境,来看看cURL的一些常用用法
[root@surpass ~]# yum install -y curl
curl [options...] <URL>
在万维网上,每一个信息资源都有统一的且在网上唯一的地址,该地址就叫URL(Uniform Resource Locator,统一资源定位器),它是万维网的统一资源定位标志,就是指网络地址。URL的格式定义要参考 RFC 1808 。
URL由三部分组成:资源类型、存放资源的主机域名、资源文件名。也可认为由4部分组成:协议、主机、端口、路径,URL的一般语法格式为:
protocol://hostname[:port]/path/[;parameters][?query]#fragment
带[]的为可选项
指定使用的传输协议。以下为部分支持的传输协议(常用的是HTTP协议)。
| 协议 | 说明 | 格式 |
|---|---|---|
| file | 资源是本地计算机上的文件 | 格式file:/// |
| ftp | 通过 FTP访问资源 | 格式 ftp:// |
| http | 通过 HTTP 访问该资源 | 格式 http:// |
| https | 通过安全的 HTTPS 访问该资源 | 格式 https:// |
| mailto | 资源为电子邮件地址,通过 SMTP 访问 | 格式 mailto: |
指存放资源的服务器的域名系统(DNS) 主机名或 IP 地址。有时,也可以在主机名前包含连接到服务器所需的用户名和密码(格式:username:password@hostname)
整数、可选,省略时使用方案的默认端口,各种传输协议都有默认的端口号,如http的默认端口为80。如果输入时省略,则使用默认端口号。有时候出于安全或其他考虑,可以在服务器上对端口进行重定义,即采用非标准端口号,此时,URL中就不能省略端口号这一项。
由零或多个"/"符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。
用于指定特殊参数的可选项
可选,用于给网页传递参数,可有多个参数,用 & 符号隔开,每个参数的名和值用 = 符号隔开。
字符串,用于指定网络资源中的片断。例如一个网页中有多个名词解释,可使用fragment直接定位到某一名词解释。
-A 参数指定客户端的用户代理标头,即User-Agent。curl 的默认用户代理字符串是curl/[version]。
[root@surpass ~]# curl -A "Surpass/v2.0" http://httpbin.org/get
{
"args": {},
"headers": {
"Accept": "*/*",
"Host": "httpbin.org",
"User-Agent": "Surpass/v2.0",
"X-Amzn-Trace-Id": "Root=1-6215aac3-155eacd652f66bfa65f0f6a2"
},
"origin": "58.34.128.34",
"url": "http://httpbin.org/get"
}
-b参数用来向服务器发送 Cookie。
root@surpass ~]# curl -b "name=Surpss" http://httpbin.org/get
{
"args": {},
"headers": {
"Accept": "*/*",
"Cookie": "name=Surpss",
"Host": "httpbin.org",
"User-Agent": "curl/7.29.0",
"X-Amzn-Trace-Id": "Root=1-6215ab74-0d1ad58915275e54624c5b85"
},
"origin": "58.34.128.34",
"url": "http://httpbin.org/get"
}
-c 参数将服务器设置的 Cookie 写入一个文件
[root@surpass Surpass]# curl -c /home/Surpass/cookies.txt http://www.baidu.com/
...
[root@surpass Surpass]# cat /home/Surpass/cookies.txt
# Netscape HTTP Cookie File
# http://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.
.baidu.com TRUE / FALSE 1645674025 BDORZ 27315
-X参数指定 HTTP 请求的方法
[root@surpass Surpass]# curl -X GET http://httpbin.org/get
{
"args": {},
"headers": {
"Accept": "*/*",
"Host": "httpbin.org",
"User-Agent": "curl/7.29.0",
"X-Amzn-Trace-Id": "Root=1-6215ad49-66df43ca728c5acd0f72dc90"
},
"origin": "58.34.128.34",
"url": "http://httpbin.org/get"
}
-d参数用于发送 POST 请求的数据体
[root@surpass Surpass]# curl -X POST -d "name=Surpass&city=Shanghai" http://httpbin.org/post
{
"args": {},
"data": "",
"files": {},
"form": {
"city": "Shanghai",
"name": "Surpass"
},
"headers": {
"Accept": "*/*",
"Content-Length": "26",
"Content-Type": "application/x-www-form-urlencoded",
"Host": "httpbin.org",
"User-Agent": "curl/7.29.0",
"X-Amzn-Trace-Id": "Root=1-6215adba-49ec43a362fd317d050a8aa4"
},
"json": null,
"origin": "58.34.128.34",
"url": "http://httpbin.org/post"
}
使用-d参数以后,HTTP 请求会自动加上标头Content-Type : application/x-www-form-urlencoded。并且会自动将请求转为 POST 方法,因此可以省略-X POST
-d参数可以读取本地文本文件的数据,向服务器发送。
[root@surpass Surpass]# cat surpass.txt
name=Surpass&city=Shanghai
[root@surpass Surpass]# curl -X POST -d "@/home/Surpass/surpass.txt" http://httpbin.org/post
{
"args": {},
"data": "",
"files": {},
"form": {
"city": "Shanghai",
"name": "Surpass"
},
"headers": {
"Accept": "*/*",
"Content-Length": "26",
"Content-Type": "application/x-www-form-urlencoded",
"Host": "httpbin.org",
"User-Agent": "curl/7.29.0",
"X-Amzn-Trace-Id": "Root=1-6215ae49-77106731260a6aa23b3fe128"
},
"json": null,
"origin": "58.34.128.34",
"url": "http://httpbin.org/post"
}
--data-urlencode参数等同于-d,发送 POST 请求的数据体,区别在于会自动将发送的数据进行 URL 编码。
-e参数用来设置 HTTP 的标头Referer,表示请求的来源
curl -e "http://www.baidu.com" http://httpbin.org/get
{
"args": {},
"headers": {
"Accept": "*/*",
"Host": "httpbin.org",
"Referer": "http://www.baidu.com",
"User-Agent": "curl/7.29.0",
"X-Amzn-Trace-Id": "Root=1-6215b029-32ad83970dd3997f16e46bf6"
},
"origin": "58.34.128.34",
"url": "http://httpbin.org/get"
}
-F参数用来向服务器上传二进制文件
[root@surpass Surpass]# curl -F "@file=/home/Surpass/cp.exe" -X POST http://httpbin.org/post
{
"args": {},
"data": "",
"files": {},
"form": {
"@file": "/home/Surpass/cp.exe"
},
"headers": {
"Accept": "*/*",
"Content-Length": "160",
"Content-Type": "multipart/form-data; boundary=----------------------------4dfc834637a8",
"Host": "httpbin.org",
"User-Agent": "curl/7.29.0",
"X-Amzn-Trace-Id": "Root=1-6215b100-241d9f35053c8ca12b5d95d2"
},
"json": null,
"origin": "58.34.128.34",
"url": "http://httpbin.org/post"
}
-F参数可以指定 MIME 类型
curl -F "file=@Surpass.png;type=image/png" -X POST http://httpbin.org/post
-G参数用来构造 URL 的查询字符串
[root@surpass Surpass]# curl -G -d "name=Surpass" -d "city=Shanghai" http://httpbin.org/get
{
"args": {
"city": "Shanghai",
"name": "Surpass"
},
"headers": {
"Accept": "*/*",
"Host": "httpbin.org",
"User-Agent": "curl/7.29.0",
"X-Amzn-Trace-Id": "Root=1-6215b222-60aa0b090adea66a01b6d883"
},
"origin": "58.34.128.34",
"url": "http://httpbin.org/get?name=Surpass&city=Shanghai"
}
-H参数添加 HTTP 请求的标头。
[root@surpass Surpass]# curl -H "Accept:application/json" -H "Content-Type:application/json" -d '{"name":"Surpass","city":"Shanghai"}' -X POST http://httpbin.org/post
{
"args": {},
"data": "{\"name\":\"Surpass\",\"city\":\"Shanghai\"}",
"files": {},
"form": {},
"headers": {
"Accept": "application/json",
"Content-Length": "36",
"Content-Type": "application/json",
"Host": "httpbin.org",
"User-Agent": "curl/7.29.0",
"X-Amzn-Trace-Id": "Root=1-6215b33a-1eb87b6c4a6d963733fe1b64"
},
"json": {
"city": "Shanghai",
"name": "Surpass"
},
"origin": "58.34.128.34",
"url": "http://httpbin.org/post"
}
-I参数向服务器发出 HEAD 请求,然会将服务器返回的 HTTP 标头打印出来
[root@surpass Surpass]# curl -I http://httpbin.org/bin/get
HTTP/1.1 404 NOT FOUND
Date: Wed, 23 Feb 2022 04:09:58 GMT
Content-Type: text/html
Content-Length: 233
Connection: keep-alive
Server: gunicorn/19.9.0
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
-k参数指定跳过 SSL 检测。
curl -k https://www.baidu.com/
上面命令不会检查服务器的 SSL 证书是否正确
-o参数将服务器的回应保存成文件,等同于wget命令
[root@surpass Surpass]# curl -o /home/Surpass/baidu.html -k https://www.baidu.com/
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2443 100 2443 0 0 10585 0 --:--:-- --:--:-- --:--:-- 10621
-u参数用来设置服务器认证的用户名和密码
[root@surpass Surpass]# curl -X POST -u "Surpass:123456" http://httpbin.org/post
{
"args": {},
"data": "",
"files": {},
"form": {},
"headers": {
"Accept": "*/*",
"Authorization": "Basic U3VycGFzczoxMjM0NTY=",
"Host": "httpbin.org",
"User-Agent": "curl/7.29.0",
"X-Amzn-Trace-Id": "Root=1-6215b50b-235bcd7559c3b10526661841"
},
"json": null,
"origin": "58.34.128.34",
"url": "http://httpbin.org/post"
}
上面命令设置用户名为Surpass,密码为123456,然后将其转为 HTTP 标头Authorization: "Basic U3VycGFzczoxMjM0NTY=
--limit-rate用来限制 HTTP 请求和回应的带宽,模拟慢网速的环境
[root@surpass Surpass]# curl -X POST -u "Surpass:123456" --limit-rate 20k http://httpbin.org/post
{
"args": {},
"data": "",
"files": {},
"form": {},
"headers": {
"Accept": "*/*",
"Authorization": "Basic U3VycGFzczoxMjM0NTY=",
"Host": "httpbin.org",
"User-Agent": "curl/7.29.0",
"X-Amzn-Trace-Id": "Root=1-6215b608-37ebfcef62e94fd92413f270"
},
"json": null,
"origin": "58.34.128.34",
"url": "http://httpbin.org/post"
}
-O参数将服务器回应保存成文件,并将 URL 的最后部分当作文件名
[root@surpass Surpass]# curl -O http://www.downcc.com/soft/265486.html
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 311 0 311 0 0 3963 0 --:--:-- --:--:-- --:--:-- 3987
[root@surpass Surpass]# ll
total 164
-rw-r--r-- 1 root root 311 Feb 22 23:23 265486.html
-L参数会让 HTTP 请求跟随服务器的重定向。curl 默认不跟随重定向
[root@surpass Surpass]# curl -I http://www.baidu.cn/
HTTP/1.1 302 Found
Location: http://www.baidu.com/
Date: Wed, 23 Feb 2022 06:14:23 GMT
Content-Type: text/plain; charset=utf-8
[root@surpass Surpass]# curl -I -L http://www.baidu.cn/
HTTP/1.1 302 Found
Location: http://www.baidu.com/
Date: Wed, 23 Feb 2022 06:14:31 GMT
Content-Type: text/plain; charset=utf-8
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Connection: keep-alive
Content-Length: 277
Content-Type: text/html
Date: Wed, 23 Feb 2022 06:14:31 GMT
Etag: "575e1f60-115"
Last-Modified: Mon, 13 Jun 2016 02:50:08 GMT
Pragma: no-cache
Server: bfe/1.0.8.18
原文地址:https://www.jianshu.com/p/5e2b5fa943b2
本文同步在微信订阅号上发布,如各位小伙伴们喜欢我的文章,也可以关注我的微信订阅号:woaitest,或扫描下面的二维码添加关注:

无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD
1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,
Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功
在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主
1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模
ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear
我试图在Ubuntu14.04中使用Curl安装RVM。我运行了以下命令:\curl-sSLhttps://get.rvm.io|bash-sstable出现如下错误:curl:(7)Failedtoconnecttoget.rvm.ioport80:Networkisunreachable非常感谢解决此问题的任何帮助。谢谢 最佳答案 在执行curl之前尝试这个:echoipv4>>~/.curlrc 关于ruby-在Ubuntu14.04中使用Curl安装RVM时出错,我们在Stack
我是Ruby新手,并被要求在我们的新项目中使用它。我们还被要求使用Padrino(Sinatra)作为后端/框架。我们被要求使用Rspec进行测试。我一直在寻找可以指导在Padrino上使用RspecforRuby的教程。我得到的主要是引用RoR。但是,我需要RubyonPadrino。请在任何入门/指南/引用/讨论等方面指导我。如有不妥之处请指正。可能是我没有针对我的问题搜索正确的词/短语组合。我正在使用Ruby1.9.3和Padrinov.0.10.6。注意:我还提到了SOquestion,但它没有帮助。 最佳答案 我没用过Pa
(本文是网络的宏观的概念铺垫)目录计算机网络背景网络发展认识"协议"网络协议初识协议分层OSI七层模型TCP/IP五层(或四层)模型报头以太网碰撞路由器IP地址和MAC地址IP地址与MAC地址总结IP地址MAC地址计算机网络背景网络发展 是最开始先有的计算机,计算机后来因为多项技术的水平升高,逐渐的计算机变的小型化、高效化。后来因为计算机其本身的计算能力比较的快速:独立模式:计算机之间相互独立。 如:有三个人,每个人做的不同的事物,但是是需要协作的完成。 而这三个人所做的事是需要进行协作的,然而刚开始因为每一台计算机之间都是互相独立的。所以前面的人处理完了就需要将数据
1.问题描述使用Python的turtle(海龟绘图)模块提供的函数绘制直线。2.问题分析一幅复杂的图形通常都可以由点、直线、三角形、矩形、平行四边形、圆、椭圆和圆弧等基本图形组成。其中的三角形、矩形、平行四边形又可以由直线组成,而直线又是由两个点确定的。我们使用Python的turtle模块所提供的函数来绘制直线。在使用之前我们先介绍一下turtle模块的相关知识点。turtle模块提供面向对象和面向过程两种形式的海龟绘图基本组件。面向对象的接口类如下:1)TurtleScreen类:定义图形窗口作为绘图海龟的运动场。它的构造器需要一个tkinter.Canvas或ScrolledCanva