curl是一款功能强大的命令行服务器请求工具,不仅支持多种协议,例如HTTP,HTTPS,FTP,SCP等等,还提供很多功能,例如用户认证,cookie管理,文件续传等等。这一篇文章我们一起来学习下如何用curl来测试后端开发的网页或者API。
我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。
直接在命令后面接url即可进行基本访问
这里需要注意url必须要完整,写清楚协议,例如
如果成功请求到一个网页,则会返回该网页对应的H5字符串。
我在后端创建一个测试页面如下
此时直接去访问该网页对应的url,结果如下
H5页面被原封不动返回。
保存结果
当然,通常要查看网页直接用浏览器会更方便一点。使用命令行通常是为了将结果保存下来为后面使用。此时可以利用进行输出重定向
这里有个小技巧,如果请求的对象是一个文件,就可以达到跟命令同样的下载效果。
查看头信息
如果要连同头信息一起返回,可以加上参数
可以看到这里将头部信息也显示了出来,如果想只显示头部信息可以将换成。通过状态码以及内容长度等等信息可以做访问异常一些基本的判断。
例如另一个网页就没有返回任何结果
查看头信息发现状态码是302,才知道被重定向了
下面看看怎么处理重定向问题。
页面跳转
利用参数跟踪跳转到最终页面
可以看到经过一次跳转到最终页面,并成功返回。
不过,要说curl真正方便的地方在于测试后端开发的API,功能几乎和python中requests库或者urllib库差不多。
GET方法和POST方法
通过来指定请求时的HTTP方法,因为很多高内聚的后端,同一个url对于GET和POST的反馈是不一样的。
通常来讲POST方法用的较多,GET方法可以省略不写。
这里注意返回的Json数据,的值为空,因为这个值我是通过cookie来获取的,这里还没有传递cookie到后端,所以会显示为空。
添加POST传递数据
下面试一下POST方法,使用POST方法通常是为了往服务器传递数据,可以利用来完成。值得注意的是,后面需要用带大括号键值对的方式去传递。
需要注意的是,shell里面单引号是原因输出,双引号会进行转义。因为大括号是特殊字符,所以包裹大括号的用单引号,而里面包裹字符串的用双引号
如果是传递多个字段,用类似字典的方式,逗号隔开
自定义Header信息
如果有写过爬虫的朋友应该对Header不陌生,因为要模拟浏览器,所以要尽量在Header中添加信息来伪装,例如referer和user-agent。curl中通过来添加Header信息,后面同样是跟键值对,不过不需要大括号。
为了方便,有一些Header信息可以利用专门的参数去传递。例如传递User-Agent信息,传递Referer信息等等,这里不单独举例了。
添加Cookie数据
做为会话技术的一种,cookie是存储在客户端的信息,随请求传递给服务端做一些认证工作。利用来传递键值对做为cookie,也不需要大括号,不过需要用等号连接键值对
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/8940.html