curl模拟带登录信息的请求(需要登录获取cookie)

curl作为接口测试的一种方法,可以快速的在命令行下测试接口,他比postman来的更快。无需开启界面,有时候在生产环境linux服务器上,为了检验一个接口是否可以正常返回,我们通常是通过curl,这时候是不方便使用postman或者jmeter等工具的。一般get,post等请求可以很方便的模拟。但是遇到登录需要验证用户信息的,这时候需要做一些调整。

需要用户登录,我们可以通过直接调用登录接口,然后查看他返回的cookie信息,然后在接下来的请求中,带上cookie就可以正常访问后面的接口了。如下所示:

C:\Users\Administrator>curl http://localhost:8080/user/user-info

C:\Users\Administrator>curl -d "username=admin&password=123456" -v 
http://127.0.0.1:8080/user/login
*   Trying 127.0.0.1...
* Connected to 127.0.0.1 (127.0.0.1) port 8080 (#0)
> POST /user/login HTTP/1.1
> Host: 127.0.0.1:8080
> User-Agent: curl/7.45.0
> Accept: */*
> Content-Length: 30
> Content-Type: application/x-www-form-urlencoded
>
* upload completely sent off: 30 out of 30 bytes
< HTTP/1.1 302
< Set-Cookie: JSESSIONID=50e25434-03f7-41f7-960c-c2773666d49a; Path=/; HttpOnly
< Set-Cookie: rememberMe=deleteMe; Path=/; Max-Age=0; Expires=Wed, 09-Jan-2019 06:16:43 GMT
< Location: http://127.0.0.1:8080/admin;JSESSIONID=50e25434-03f7-41f7-960c-c2773666d49a
< Content-Language: zh-CN
< Content-Length: 0
< Date: Thu, 10 Jan 2019 06:16:43 GMT
<
* Connection #0 to host 127.0.0.1 left intact

C:\Users\Administrator>curl --cookie "JSESSIONID=50e25434-03f7-41f7-960c-c2773666d49a" 
http://127.0.0.1:8080/
user/user-info
{"id":1,"username":"admin","password":"123456","age":20,"mobile":"15011186301","roles":null}
C:\Users\Administrator>

这里默认请求/usr/user-info接口,我们得不到任何信息,因为他需要用户登录,而只有登录了,才能拿到用户的cookie,这样,我们带上cookie,后台接口就知道用户登录过,就会返回正确的数据给请求了。 

在模拟用户登录的接口中,我们加入了-v参数,就会打印请求和相应的具体信息,这样我们可以看到服务端设置的cookie。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luffy5459

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值