在对后端程序进行测试的时候,需要进行模拟连接或者书写测试脚本.

curl是一个很棒的命令.

例如目标网站Url:
127.0.0.1:8080/check_your_status?user=Summer&passwd=12345678
通过Get方法请求:
curl protocol://address:port/url?args
curl http://127.0.0.1:8080/check_your_status?user=Summer&passwd=12345678
通过Post方法请求:
curl -d "args" "protocol://address:port/url"
curl -d "user=Summer&passwd=12345678" "http://127.0.0.1:8080/check_your_status"
这种方法是参数直接在header里面的
如需将输出指定到文件可以通过重定向进行操作.
curl -H "Content-Type:application/json" -X POST --data (json.data) URL
curl -H "Content-Type:application/json" -X POST --data '{"message": "sunshine"}' http://localhost:8000/
这种方法是json数据直接在body里面的

使用Curl命令查看请求响应时间方法
curl -o /dev/null -s -w %{time_namelookup}::%{time_connect}::%{time_starttransfer}::%{time_total}::%{speed_download}"\n" http://www.36nu.com

0.014::0.015::0.018::0.019::1516256.00
编写测试实例:
curl -b “user_trace_token=20150518150621-02994ed9a0fb42d1906a56258e072fc4;LGUID=20150515135257-a33a769c-fac6-11e4-91ce-5254005c3644” http://10.10.26.164:1235/click?v=1&logtype=deliver&position=home_hot-0&orderid=10197777&userid=1942556&positionid=148&url=http%3a%2f%2fwww.lagou.com%2fjobs%2f317000.html%3fsource%3dhome_hot%26i%3dhome_hot-5&fromsite=http%3a%2f%2fwww.lagou.com%2fzhaopin%2fAndroid%3flabelWords%3dlabel%26utm_source%3dAD__baidu_pinzhuan%26utm_medium%3dsem%26utm_campaign%3dSEM&optime=2015-06-15_20:00:00
发现这样还是不可以,url附带的参数取不到。使用-d 参数传递url参数,使用-G 把请求方式配置为GET就OK了,如下:
curl -b “user_trace_token=20150518150621-02994ed9a0fb42d1906a56258e072fc4;LGUID=20150515135257-a33a769c-fac6-11e4-91ce-5254005c3644;LGSID=20150518150621-02994ed9a0fb42d1906a56258e072fc4;LGRID=20150617230732-4ea87972-1580-11e5-9a88-000c29653e90;” -d “v=1&logtype=deliver&position=i_home-1&orderid=10197777&userid=1942556&positionid=148&url=http%3a%2f%2f www.lagou.com%2fjobs%2f317000.html%3fsource%3dhome_hot%26i%3dhome_hot-5&fromsite=http%3a%2f%2fwww.lagou.com%2fzhaopin%2fAndroid%3flabelWords%3dlabel%26utm_source%3dAD__baidu_pinzhuan%26utm_medium%3dsem%26utm_campaign%3dSEM&optime=2015-06-15_20:00:00 ” -G http://10.10.26.164:1235/click
想要获得response返回的cookie怎么办,使用’-c’参数,同时可以使用-b filename用文件方式表示cookie,配合-c使用更方便
可以先用-c 命令生成一个cookie文件作为模板,再修改这个文件作为-b 参数的文件名。
使用如下:
curl -b c1.txt -c c2.txt -d “v=1&_v=j31&a=406405635&t=pageview&_s=1&dr=http%3a%2f%2fwww.sogou.com%2ftuguang&dl=http%3A%2F%2Fwww.lagou.com%2F%3futm_source%3dad_sougou_pingzhuan&ul=zh-cn&de=UTF-8&dt=%E6%8B%89%E5%8B%BE%E7%BD%91-%E6%9C%80%E4%B8%93%E4%B8%9A%E7%9A%84%E4%BA%92%E8%81%94%E7%BD%91%E6%8B%9B%E8%81%98%E5%B9%B3%E5%8F%B0&sd=24-bit&sr=1600×900&vp=1583×291&je=1&fl=18.0%20r0&_u=MACAAAQBK~&jid=&cid=1312768212.1431333683&tid=UA-41268416-1&z=1204746223” -G http://192.168.52.130:1234/collect
生成的c2.txt内容如下:

Netscape HTTP Cookie File

http://curl.haxx.se/docs/http-cookies.html

This file was generated by libcurl! Edit at your own risk.192.168.52.130 FALSE / FALSE 1757574737 user_trace_token 20150914151217-eedd019e-5aaf-11e5-8a69-000c29653e90

192.168.52.130 FALSE / FALSE 1442217595 LGSID 20150914152955-652a13c5-5ab2-11e5-846d-000c29653e90
192.168.52.130 FALSE / FALSE 1442217595 PRE_UTM
192.168.52.130 FALSE / FALSE 1442217595 PRE_HOST www.huxiu.com
192.168.52.130 FALSE / FALSE 1442217595 PRE_SITE http%3A%2F%2Fwww.huxiu.com%2Ftuguang
192.168.52.130 FALSE / FALSE 1442217595 PRE_LAND http%3A%2F%2Fwww.lagou.com%2F%3F
192.168.52.130 FALSE / FALSE 0 LGRID 20150914152955-652a1630-5ab2-11e5-846d-000c29653e90
192.168.52.130 FALSE / FALSE 1757574737 LGUID 20150914151217-eedd0624-5aaf-11e5-8a69-000c29653e90

使用curl命令访问url并模拟cookie
编写测试实例:
curl -b “user_trace_token=20150518150621-02994ed9a0fb42d1906a56258e072fc4;LGUID=20150515135257-a33a769c-fac6-11e4-91ce-5254005c3644” http://10.10.26.164:1235/click?v=1&logtype=deliver&position=home_hot-0&orderid=10197777&userid=1942556&positionid=148&url=http%3a%2f%2fwww.lagou.com%2fjobs%2f317000.html%3fsource%3dhome_hot%26i%3dhome_hot-5&fromsite=http%3a%2f%2fwww.lagou.com%2fzhaopin%2fAndroid%3flabelWords%3dlabel%26utm_source%3dAD__baidu_pinzhuan%26utm_medium%3dsem%26utm_campaign%3dSEM&optime=2015-06-15_20:00:00
发现这样还是不可以,url附带的参数取不到。使用-d 参数传递url参数,使用-G 把请求方式配置为GET就OK了,如下:
curl -b “user_trace_token=20150518150621-02994ed9a0fb42d1906a56258e072fc4;LGUID=20150515135257-a33a769c-fac6-11e4-91ce-5254005c3644;LGSID=20150518150621-02994ed9a0fb42d1906a56258e072fc4;LGRID=20150617230732-4ea87972-1580-11e5-9a88-000c29653e90;” -d “v=1&logtype=deliver&position=i_home-1&orderid=10197777&userid=1942556&positionid=148&url=http%3a%2f%2f www.lagou.com%2fjobs%2f317000.html%3fsource%3dhome_hot%26i%3dhome_hot-5&fromsite=http%3a%2f%2fwww.lagou.com%2fzhaopin%2fAndroid%3flabelWords%3dlabel%26utm_source%3dAD__baidu_pinzhuan%26utm_medium%3dsem%26utm_campaign%3dSEM&optime=2015-06-15_20:00:00 ” -G http://10.10.26.164:1235/click
想要获得response返回的cookie怎么办,使用’-c’参数,同时可以使用-b filename用文件方式表示cookie,配合-c使用更方便
可以先用-c 命令生成一个cookie文件作为模板,再修改这个文件作为-b 参数的文件名。
使用如下:
curl -b c1.txt -c c2.txt -d “v=1&_v=j31&a=406405635&t=pageview&_s=1&dr=http%3a%2f%2fwww.sogou.com%2ftuguang&dl=http%3A%2F%2Fwww.lagou.com%2F%3futm_source%3dad_sougou_pingzhuan&ul=zh-cn&de=UTF-8&dt=%E6%8B%89%E5%8B%BE%E7%BD%91-%E6%9C%80%E4%B8%93%E4%B8%9A%E7%9A%84%E4%BA%92%E8%81%94%E7%BD%91%E6%8B%9B%E8%81%98%E5%B9%B3%E5%8F%B0&sd=24-bit&sr=1600×900&vp=1583×291&je=1&fl=18.0%20r0&_u=MACAAAQBK~&jid=&cid=1312768212.1431333683&tid=UA-41268416-1&z=1204746223” -G http://192.168.52.130:1234/collect
生成的c2.txt内容如下:

Netscape HTTP Cookie File

http://curl.haxx.se/docs/http-cookies.html

This file was generated by libcurl! Edit at your own risk.192.168.52.130 FALSE / FALSE 1757574737 user_trace_token 20150914151217-eedd019e-5aaf-11e5-8a69-000c29653e90

192.168.52.130 FALSE / FALSE 1442217595 LGSID 20150914152955-652a13c5-5ab2-11e5-846d-000c29653e90
192.168.52.130 FALSE / FALSE 1442217595 PRE_UTM
192.168.52.130 FALSE / FALSE 1442217595 PRE_HOST www.huxiu.com
192.168.52.130 FALSE / FALSE 1442217595 PRE_SITE http%3A%2F%2Fwww.huxiu.com%2Ftuguang
192.168.52.130 FALSE / FALSE 1442217595 PRE_LAND http%3A%2F%2Fwww.lagou.com%2F%3F
192.168.52.130 FALSE / FALSE 0 LGRID 20150914152955-652a1630-5ab2-11e5-846d-000c29653e90
192.168.52.130 FALSE / FALSE 1757574737 LGUID 20150914151217-eedd0624-5aaf-11e5-8a69-000c29653e90

-o:把curl 返回的html、js 写到垃圾回收站[ /dev/null]
-s:去掉所有状态
-w:按照后面的格式写出rt
time_namelookup:DNS 解析域名www.36nu.com的时间
time_commect:client和server端建立TCP 连接的时间
time_starttransfer:从client发出请求;到web的server 响应第一个字节的时间
time_total:client发出请求;到web的server发送会所有的相应数据的时间
speed_download:下周速度 单位 byte/s
上面这条命令及返回结果可以这么理解:
0.014: DNS 服务器解析www.36nu.com 的时间单位是s
0.015: client发出请求,到c/s 建立TCP 的时间;里面包括DNS解析的时间
0.018: client发出请求;到s响应发出第一个字节开始的时间;包括前面的2个时间
0.019: client发出请求;到s把响应的数据全部发送给client;并关闭connect的时间
1516256.00 :下载数据的速度
建立TCP连接到server返回client第一个字节的时间:0.018s – 0.015s = 0.003s
server把响应数据发送给client的时间:0.019s – 0.018 = 0.01s

转载于:https://blog.51cto.com/lookingdream/2087142

CURL命令模拟Http Get/Post以及带cookies调用接口相关推荐

  1. linux curl 命令模拟 http get post 请求

    get post 提交的数据 地址 和步骤 需要用使用 burpsuite 先获取 再使用curl模拟请求 通过get方法请求: curl protocol://address:port/url?ar ...

  2. Linux curl 命令模拟 POST/GET 请求

    curl 命令,是一个利用URL规则在命令行下工作的文件传输工具. curl 支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具. 作为一款强力工具,curl支持包括HTTP ...

  3. windows系统win10使用curl命令模拟发送post/get请求

    请求地址 http://10.120.22.123:9527/payment/lb?userName=4 POST请求 curl -d '[参数]' [请求地址] eg: curl -d 'userN ...

  4. Linux之curl命令用法指南学习

    Linux之curl命令用法指南学习 前言 常用参数 命令样例 其他 参考链接 前言 应用场景 工作中经常需要用到curl命令在测试或生产服务器中测试第三方接口,尤其是一些内外网接口.判断线上接口信息 ...

  5. ElasticSearch快速入门三(curl命令讲解)

    API测试工具_微博开放平台:https://open.weibo.com/tools/console# 感兴趣是可以使用这个工具玩一下restful接口调用,可以更形象的了解restful 下面我们 ...

  6. linux篡改url命令,linux 使用curl命令访问url并模拟cookie

    1.目录 linux下通过命令访问url的方式有多种,主要如下 2.1.elinks elinks – lynx-like替代角色模式WWW的浏览器 2.1.2.wget 这个会将访问的首页下载到本地 ...

  7. curl命令java_上curl java 模拟http请求

    最近,我的项目要求java模拟http请求,获得dns解决 tcp处理过的信息特定的连接. java api提供urlConnection apache提供的httpClient都不能胜任该需求,二次 ...

  8. Linux中使用curl命令发送带参数的get请求和post请求

    1. curl与wget 命令的区别 相似之处:wget 和 cURL 都可以下载内容,都可以向互联网发送请求并返回请求项,也可以进行 HTTP POST 请求,它们都是命令行工具,可以设计成可脚本化 ...

  9. curl命令具体解释

    对于windows用户假设用Cygwin模拟unix环境的话,里面没有带curl命令,要自己装,所以建议用Gow来模拟,它已经自带了curl工具,安装后直接在cmd环境中用curl命令就可,由于路径已 ...

  10. curl命令行发送POST/GET请求

    curl命令是一个利用URL规则在命令行下工作的文件传输工具.使用一种受支持的协议,从远程服务器传输数据,或将数据传输到远程服务器.默认情况下,已安装在macOS和大多数Linux发行版上.curl支 ...

最新文章

  1. php 跳转qq群代码_PHP小脚本~QQ免KEY值加群
  2. UpdateData使用简介
  3. 为您的Office文档加把锁-ADRMS的安装
  4. Azure恢复服务-DPM联机备份SQL数据库
  5. php str cmp,php中整数的strcmp equivalent(intcmp)
  6. c 解析java byte,深入解析Java编程中面向字节流的一些应用
  7. C语言深度剖析书籍学习记录 第六章 函数
  8. 判断两个IP大小关系及是否在同一个网段中
  9. 基于map函数生成星战片头动画
  10. java 二分查找法和顺序查找法的效率比较
  11. kali-linux学习笔记及经验总结(持更)
  12. python 视频和音乐的剪辑与拼接
  13. SLAM大牛实验室汇总(转载)
  14. 那一年,我进传销了……(作者亲身经历)
  15. 多用户MIMO在移动通信系统中的应用
  16. Unity矩阵乘法的区别
  17. vue上传图片文件到腾讯COS
  18. 利用R包ggmsa进行多序列比对_2020-05-31
  19. 虚拟机客户端怎么连接服务器,虚拟机客户端连接服务器
  20. 什么是MVVM模式?

热门文章

  1. spring mvc 简单的文件上传与下载
  2. java struts xml文件设置----自定义日期转换器(局部,及全局类型转换器类)
  3. 使用Kotlin进行Android开发
  4. 第二章 springboot+mybatis
  5. verilog 之数字电路 边沿检测电路
  6. 转:Python正则表达式操作指南
  7. vue组件,通过props父组件给子组件传值,WTF, 子组件报错undefined???
  8. c++全局变量,局部变量,内存布局,默认初始化
  9. 学习使用autotools
  10. Matlab字符串转换及数值格式转换