Linux下使用Curl使用

拥有回忆 提交于 2020-08-17 16:51:56

1、Curl常用命令集: 

# 调试类
-v, --verbose                          输出信息
-q, --disable                          在第一个参数位置设置后 .curlrc 的设置直接失效,这个参数会影响到 -K, --config -A, --user-agent -e, --referer
-K, --config FILE                      指定配置文件
-L, --location                         跟踪重定向 (H)

# CLI显示设置
-s, --silent                           Silent模式。不输出任务内容
-S, --show-error                       显示错误. 在选项 -s 中,当 curl 出现错误时将显示
-f, --fail                             不显示 连接失败时HTTP错误信息
-i, --include                          显示 response的header (H/F)
-I, --head                             仅显示 响应文档头
-l, --list-only                        只列出FTP目录的名称 (F)
-#, --progress-bar                     以进度条 显示传输进度

# 数据传输类
-X, --request [GET|POST|PUT|DELETE|…]  使用指定的 http method 例如 -X POST
-H, --header <header>                  设定 request里的header 例如 -H "Content-Type: application/json"
-e, --referer                          设定 referer (H)
-d, --data <data>                      设定 http body 默认使用 content-type application/x-www-form-urlencoded (H)
    --data-raw <data>                  ASCII 编码 HTTP POST 数据 (H)
    --data-binary <data>               binary 编码 HTTP POST 数据 (H)
    --data-urlencode <data>            url 编码 HTTP POST 数据 (H)
-G, --get                              使用 HTTP GET 方法发送 -d 数据 (H)
-F, --form <name=string>               模拟 HTTP 表单数据提交 multipart POST (H)
    --form-string <name=string>        模拟 HTTP 表单数据提交 (H)
-u, --user <user:password>             使用帐户,密码 例如 admin:password
-b, --cookie <data>                    cookie 文件 (H)
-j, --junk-session-cookies             读取文件中但忽略会话cookie (H)
-A, --user-agent                       user-agent设置 (H)

# 传输设置
-C, --continue-at OFFSET               断点续转
-x, --proxy [PROTOCOL://]HOST[:PORT]   在指定的端口上使用代理
-U, --proxy-user USER[:PASSWORD]       代理用户名及密码

# 文件操作
-T, --upload-file <file>               上传文件
-a, --append                           添加要上传的文件 (F/SFTP)

# 输出设置
-o, --output <file>                    将输出写入文件,而非 stdout
-O, --remote-name                      将输出写入远程文件
-D, --dump-header <file>               将头信息写入指定的文件
-c, --cookie-jar <file>                操作结束后,要写入 Cookies 的文件位置

API地址: https://curl.haxx.se/docs/manpage.html

 

---------------start--------------------------------------------------------------------------

2、Linux下使用Curl调用Java的WebService接口

 

其实只要是标准的WSDL的SOA接口WebService都可以用。

调用方式:

注意:上面的方式不包括加密或者登录的,其实SOA有一套完整的加密方式。

curl -H'Content-Type: text/xml;charset=utf-8;SOAPAction: "http://xxxx.com/xxxxAPI/Login"'-d '<?xml version="1.0"encoding="utf-16"?><soap:Envelopexmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><Loginxmlns="http://xxxx.com/xxxxAPI/"><loginRequest><RequestHead><LoginToken /><Language /><GUID/><Version /><TestMode>0</TestMode> </RequestHead><UserName>test</UserName><Password>xxxx</Password></loginRequest></Login></soap:Body></soap:Envelope>' http://localhost:10481/xxxxAPIService.asmx

 

参考:

http://www.cnblogs.com/MarsCheng/p/7218424.html(以上部分内容转自此篇文章)

http://lfstar.blog.163.com/blog/static/56378987201041843056809/

http://www.blackzs.com/archives/396

http://blog.csdn.net/yui/article/details/6165337(有完整的登录请求)

http://blog.csdn.net/russ44/article/details/53308838

http://www.blackzs.com/archives/396

第2摘自: https://curl.haxx.se/docs/manpage.html

-------------------------------------end ----------------------

 

3、curl 模拟 GET\POST 请求,以及 curl post 上传文件

一般情况下,我们调试数据接口,都会使用一个 postman 的工具,但是这个工具还是有点大了。事实上,我们在调试一些小功能的时候,完全没有必要使用它。在命令行中,我们使用 curl 这个工具,完全可以满足我们轻量的调试要求。

下面,我们来简单的说一下,curl 的一些常见使用方法:

curl GET 请求
curl命令 + 请求接口的地址。

curl localhost:9999/api/daizhige/article
1
如上,我们就可以请求到我们的数据了,如果想看到详细的请求信息,我们可以加上 -v 参数

curl localhost:9999/api/daizhige/article -v
1
操作结果如下图所示:

curl POST 请求
我们可以用 -X POST 来申明我们的请求方法,用 -d 参数,来传送我们的参数。

所以,我们可以用 -X PUT 和 -X DELETE 来指定另外的请求方法。

curl localhost:9999/api/daizhige/article -X POST -d "title=comewords&content=articleContent"
1
如上,这就是一个普通的 post 请求。

但是,一般我们的接口都是 json 格式的,这也没有问题。我们可以用 -H 参数来申明请求的 header

curl localhost:9999/api/daizhige/article -X POST -H "Content-Type:application/json" -d '{"title":"comewords","content":"articleContent"}'
1
so, 我们可以用 -H 来设置更多的 header 比如,用户的 token 之类的。

同样,我们可以用 -v 来查看详情。

curl POST 上传文件
上面的两种请求,都是只传输字符串,我们在测试上传接口的时候,会要求传输文件,其实这个对于 curl 来说,也是小菜一碟。

我们用 -F "file=@__FILE_PATH__" 的请示,传输文件即可。命令如下:

curl localhost:8000/api/v1/upimg -F "file=@/Users/fungleo/Downloads/401.png" -H "token: 222" -v
1
执行结果如下图所示:

 
第3摘自:https://blog.csdn.net/FungLeo/article/details/80703365

 

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!