提升开发效率小工具之-curl

curl–(command line url viewer)是类Unix系统上内置的一个命令行工具,它支持HTTPFTP等常用方式进行网络访问,是一个灰常强大的工具。使用它,可以很好的提升我们开发的效率,比如需要构建一个带有entitypost请求。curl工具使用的是libcurl库来实现的。

典型案例:
开发中测试环境数据不全,但是客户端提交数据的页面相关代码暂时还没有,我们需要构建一个请求,通过提供的API来进行数据的插入。此外,curl还可以很方便的进行网络资源的上传和下载。

上传下载资源

HTTP

curl -o targetfilename http_url //指定的资源下载到targetfilename
curl -O http_uri //下载指定的资源到当前目录下

http上传文件使用--form参数模拟一次表单提交:

curl --form uploadfile=@/User/who/foo.py http_url  //注意,uploadfile是后台能够处理的表单参数

FTP

  1. 查看FTP服务器目录结构

     curl ftp://ftp.pku.edu.cn  //北大的公共FTP服务器,不需要用户名密码
     
     drwxr-xr-x   34 ftp      ftp          4096 Jul 03  2013 Linux
     drwx------    2 ftp      ftp         16384 Jul 16  2012 lost+found
     drwxr-x---    2 ftp      ftp          4096 Jun 23  2012 mnt
     drwxr-xr-x  109 ftp      ftp          4096 Jun 13  2013 open
     drwxr-xr-x    3 ftp      ftp          4096 Dec 28  2012 pub
     -rw-r--r--    1 ftp      ftp            51 Jan 10  2012 welcome.msg
    
  2. 下载某个文件到本地

     curl -o welcome_down.msg ftp://ftp.pku.edu.cn/welcome.msg 
    
  3. 上传某个文件到FTP服务器

     curl -T welcome_down.msg ftp://ftp.pku.edu.cn/pub  //error 注意,pub并没有开放写权限
    
  4. 创建目录

     curl --ftp-create-dirs //如果不存在这个目录,那么创建
    

编写HTTP请求

上面部分可以为我们上传下载资源提供便利,也可以为我们编写命令行程序时提供了现成的上传下载API。但通过curl可以构造出符合要求的HTTP请求,才真正可以提升开发的效率。

curl命令行的可选参数很多,这里只介绍几个常用的:

-v //显示一次HTTP连接的整个过程,包括建立端口连接和请求的详细信息
-H //增加Header
-X //指定执行的动作 如POST GET DELETE等
--user-agent //指定请求的user agent
--user name:password //指定HTTP认证的口令
-d //往请求体中增加一些参数

来一个栗子:
现在有一个接口用于给某个商品添加评论,需要参数:
Token:string //用户token,放到header中
goodsId:long //商品Id 放到entity中
comment:string //评论内容 放到entity

接口URL: http://www.example.com/goods/comment/{goodsId}.json

如何通过curl构造这个请求呢?

    curl -v -H "Token:mytoken" -d "comment=text&goodsId=22" http://www.example.com/goods/comment/22.json

这样,我们就可以很方便的使用命令行来模拟一些Post请求,额,一般GET请求直接走浏览器就OK啦。

    原文作者:楚云之南
    原文地址: https://www.jianshu.com/p/9a2a9802487a
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞