https://www.jianshu.com/p/7965c56c5a2e

*********************************************

一般情况下我们会在网页上请求后台接口,但是对于需要进行多次测试的人来说,每一次都要在网页上模拟请求,是存在很大局限性的。因此,我们需要学会模拟请求,以达到跟实际请求一样的效果。

1. curl的用法

curl [options] [params] {网页url}

options = -v 显示详细的请求信息

curl -v www.baidu.com

options = -X 指定请求方式

GET请求:

curl -X GET  https://www.baidu.com/

POST请求:

curl -X POST -d "data=123&key=456" http://localhost:8080/search

由于-d选项为使用POST方式向server发送数据,因此在使用-d的时候,可以省略-X POST。使用-d时,将使用Content-type:application/x-www-form-urlencoded方式发送数据。

curl -d "q=三生三世&type=note&page=1&order_by=default" https://www.jianshu.com/search/do\?q\=%E4%B8%89%E7%94%9F%E4%B8%89%E4%B8%96\&type\=note\&page\=1\&order_by\=default

如果想使用JSON形式post数据,可以使用-H指定头部类型

curl -H "Content-Type:application/json" -d '{"data":"123","key":"456"}' http://localhost:8080/search

如果想在请求的时候带上Cookie,可以这样

curl -H "Cookie:username=XXX" {URL}

options = -H增加头部信息

curl -H "Cookie:username=XXX" {URL}

options = -c 存储cookie到文件

curl -d "name=zhangsan&password=123" http://localhost:8080/login -c ./cookie

使用用户名和密码登录系统,并将cookie信息存储在当前目录的cookie文件中

options = -b 携带cookie文件

curl http://localhost:8080/login -b ./cookie

options = --cookie 直接指定cookie

curl --cookie "name=zhangsan" http://localhost:8080/login
7.options = -F/--form 表单提交操作
curl可以通过-F命令来以Content-Type:multipart/form-data的形式向server post数据,该命令允许提交二进制文件等。可以使用@前缀来制定提交的内容为一个文件,也可以使用<符号来提交文件中的内容
curl -F profile=@portrait.jpg https://example.com/upload.cgi

向服务器上传一个图片,图片的表单域名为profile,内容为protrait.jpg的二进制

 

curl 模拟请求的更多相关文章

  1. 转载:curl 模拟请求

    一般情况下我们会在网页上请求后台接口,但是对于需要进行多次测试的人来说,每一次都要在网页上模拟请求,是存在很大局限性的.因此,我们需要学会模拟请求,以达到跟实际请求一样的效果. 1. curl的用法 ...

  2. curl模拟请求常用参数

    封装一个curl模拟浏览器请求的函数,如下: /** * curl模拟浏览器请求 * @param unknown $url 请求的地址 * @param array $params 请求地址所需要的 ...

  3. 通过PHP CURL模拟请求上传文件|图片。

    现在有一个需求就是在自己的服务器上传图片到其他服务器上面,过程:客户端上传图片->存放到本地服务器->再转发到第三方服务器; 由于前端Ajax受限制,只能通过服务器做转发了. 在PHP中通 ...

  4. curl模拟请求

    GET请求 <?php //初始化 $curl = curl_init(); //设置抓取的url curl_setopt($curl, CURLOPT_URL, 'http://www.bai ...

  5. curl 模拟请求get/post

    $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx24a0ef ...

  6. php curl模拟post请求提交数据样例总结

    在php中要模拟post请求数据提交我们会使用到curl函数,以下我来给大家举几个curl模拟post请求提交数据样例有须要的朋友可參考參考.注意:curl函数在php中默认是不被支持的,假设须要使用 ...

  7. php封装curl,模拟POST和GET请求HTTPS请求

    <?php /** * @title 封装代理请求 * @author victor **/ class ApiRequest { /** * curl提交数据 * @param String ...

  8. 【转载】curl 模拟 GET\POST 请求,curl查看响应头 以及 curl post 上传文件

    补充说明:curl查看响应头 curl -I "http://www.baidu.com"HTTP/1.1 200 OK #HTTP协议 HTTP 返回码Server: Tengi ...

  9. php使用curl模拟多线程发送请求

    每个PHP文件的执行是单线程的,但是php本身也可以用一些别的技术实现多线程并发比如用php-fpm进程,这里用curl模拟多线程发送请求.php的curl多线程是通过不断调用curl_multi_e ...

随机推荐

  1. IIS PHP

    Name:PHP_FCGI_MAX_REQUESTS Value:10000

  2. 洛谷.3805.[模板]manacher算法

    题目链接 之前做很早了没写这篇,补上. 记录当前ex[]最大的回文中心id和最远延伸范围mx! 关于串的构造: 应该是 @ #A#B#C#B#A# $ ,而不是 @ A#B#C#B#A $ 比如 @a ...

  3. [USACO07NOV]牛栏Cow Hurdles

    OJ题号:洛谷2888 思路:修改Floyd,把边权和改为边权最大值.另外注意是有向图. #include<cstdio> #include<algorithm> using ...

  4. [CTSC2017]吉夫特

    Description: 给定一个序列\(a_1,a_2,a_3...a_n\) 求有多少个不上升子序列: \(a_{b1},a_{b_2}...\) 满足 \(C_{a_{b1}}^{a_{b2}} ...

  5. js 操作数组

    数组的增删 数组的尾部插入一个元素 var nums = [0,1,2,3,4]; nums.push(5,6,6); //[0,1,2,3,4,5,6,6] 删除数组尾部的元素 var nums = ...

  6. js小题目(持续更新)

    总是感觉之前做过的问题很久没碰的话就会忘掉,于是打算专门开一个记录小题目的随笔当题典用. 目录 五种主要数据类型进行值复制 数组去重 数组去重并计数 实现clone()方法,对五种主要数据类型进行值复 ...

  7. Oracle数据库访问其他用户下的表,不加表所属的用户名的实现方法

    一. 问题: 如何实现在Oracle数据库中访问其他用户的表时不需加表所属的用户名 二. 举例: Oracle里面的用户A,要访问用户B的表需要带用户B的前缀,如访问用户B的 TEST表,需要这样访问 ...

  8. Git_git diff 与 git diff -- cached 区别

    1.首先,打开一个干净的工作区 2.对文件进行修改 3.使用 git diff  进行查看(这里的解释可能不是很准确,暂时这么理解!) 4. 执行 git add 将工作区中的内容add到stage, ...

  9. JS_高阶函数(filter)

    //2017/7/18 //高阶函数:filter. //filter也是一个常用的操作,它用于把Array的某些元素过滤掉,然后返回剩下的元素.和map()类似,Array的filter()也接收一 ...

  10. JQ04

    1.JQ插件 使用插件扩展jq的功能 1)插入插件的步骤: 引入JQ文件,引入插件,若有用到css,需要引入css.使用插件. 2)jquery.color.js <!DOCTYPE html& ...