场景:某些场景的服务器对权限有很高的限制,你直接通过自己电脑发送的请求未必会被某个服务器接收并响应。
解决,我们可以通过同一级别的服务器发送请求,也就是今天要将的curl这个命令
部分参数说明
参数 | 说明 |
---|---|
-c file | 将cookie写入到file这个文件中(file为文件路径) |
-b file | 从file这个文件中将cookie读取出来 |
-X POST/PUT/DELETE | 使用POST/PUT/DELETE方法 |
-H param | 设置请求头参数 |
-d "" | 需要向后端发送的数据 |
-k | 发送https请求的时候,不做认证 (当用https请求出错的时候,可以试下加-k) |
-v | 看到详细的请求头中的信息 |
-i | 看到详细返回头中的信息 |
-o filename url | 将对应路径的文件以该文件名下载下来 |
-O url | 使用URL中默认的文件名保存到本地 |
-F "key=value" | curl会以multipart/form-data的方式发送POST请求 以key=value的形式发送数据 如果是文件的话,则需要以key=@value(加上@的标志) |
举个例子:现在A服务器提供一个接口,根据身份证查询姓名,/getNameById 这个接口只对B服务器上的应用开放,这个时候你有一个身份证号想知道姓名是什么,你就不得不访问A的接口/getNameById,但是你发现通过本地访问这个接口一直报超时,这是因为A服务器有自己的防御机制,只会响应B服务器的请求,这个时候如果你有B服务器的使用权,你就可以通过curl这个命令访问查询姓名的接口,大概格式就是 curl -k "https://ip:8080/getNameById" 得到的结果就是你想要的,我推荐后面的地址用""保住,不然可能会出异常。对一些情况还是挺适用的。