补充说明:curl查看响应头

curl -I "http://www.baidu.com"
HTTP/1.1 200 OK #HTTP协议 HTTP 返回码
Server: Tengine
Date: Fri, 01 Nov 2013 12:37:53 GMT
Content-Type: text/html; charset=gbk
Connection: keep-alive
Vary: Accept-Encoding
Expires: Fri, 01 Nov 2013 13:37:53 GMT
Cache-Control: max-age=3600

以下原文地址:https://blog.csdn.net/fungleo/article/details/80703365

curl 模拟 GET\POST 请求,以及 curl post 上传文件
一般情况下,我们调试数据接口,都会使用一个 postman 的工具,但是这个工具还是有点大了。事实上,我们在调试一些小功能的时候,完全没有必要使用它。在命令行中,我们使用 curl 这个工具,完全可以满足我们轻量的调试要求。

下面,我们来简单的说一下,curl 的一些常见使用方法:

curl GET 请求
curl命令 + 请求接口的地址。

>>curl localhost:9999/api/daizhige/article
如上,我们就可以请求到我们的数据了,如果想看到详细的请求信息,我们可以加上 -v 参数

>>curl localhost:9999/api/daizhige/article -v
操作结果如下图所示:

curl POST 请求
我们可以用 -X POST 来申明我们的请求方法,用 -d 参数,来传送我们的参数。

所以,我们可以用 -X PUT 和 -X DELETE 来指定另外的请求方法。

>>curl localhost:9999/api/daizhige/article -X POST -d "title=comewords&content=articleContent"1

如上,这就是一个普通的 post 请求。

但是,一般我们的接口都是 json 格式的,这也没有问题。我们可以用 -H 参数来申明请求的 header

>>curl localhost:9999/api/daizhige/article -X POST -H "Content-Type:application/json" -d '"title":"comewords","content":"articleContent"'1

so, 我们可以用 -H 来设置更多的 header 比如,用户的 token 之类的。

同样,我们可以用 -v 来查看详情。

curl POST 上传文件
上面的两种请求,都是只传输字符串,我们在测试上传接口的时候,会要求传输文件,其实这个对于 curl 来说,也是小菜一碟。

我们用 -F "file=@__FILE_PATH__" 的请示,传输文件即可。命令如下:

>>curl localhost:8000/api/v1/upimg -F "file=@/Users/fungleo/Downloads/401.png" -H "token: 222" -v1

执行结果如下图所示:

更多 curl 的使用方法,以及参数说明,可以在系统中输入 man curl 来进行查看。或者,点击 curl man 查看网页版的介绍。

所以,我们可以用 man 命令名称 来查看更多的工具的介绍。当然,一些非主流的命令行工具,应该是没有相关的介绍的。

可能你会感觉用这些命令才进行操作,感觉破烦。但是,当你仅仅需要请求一个接口,进行一个轻量的操作的时候,是顺手在终端中输入一个命令来得方便,还是打开一个重型的图形工具来得方便呢?

命令行是可以保存历史记录的,我们使用 ctrl+r 快捷键可以进行历史命令搜索,这样,我们可以非常方便的重复进行命令调试。

【转载】curl 模拟 GET\POST 请求,curl查看响应头 以及 curl post 上传文件的更多相关文章

  1. django系列6--Ajax05 请求头ContentType, 使用Ajax上传文件

    一.请求头ContentType ContentType指的是请求体的编码类型,常见的类型共有三种: 1.application/x-www-form-urlencoded 这应该是最常见的 POST ...

  2. asp.net MVC 上传文件 System.Web.HttpException: 超过了最大请求长度

    APS.NET MVC 上传文件出现  System.Web.HttpException: 超过了最大请求长度 这个问题 原因是 默认最大上传文件大小为4096,而我提交的文件太大了. 解决方案:修改 ...

  3. mvc 上传文件 HTTP 错误 404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求。 maxRequestLength与 maxReceivedMessageSize 和 maxAllowedContentL区别

    具体的错误信息如下: 在线上遇到了文件上传问题,在测试环境试了好久都没有发现问题到底出在哪里,以为是服务器做了各种限制,然后一点思绪都没有.最后,尝试将线上的代码包拷贝一份,在测试环境运行,刚开始的时 ...

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

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

  5. curl 模拟 GET\POST 请求,以及 curl post 上传文件

    curl GET 请求 curl命令 + 请求接口的地址. curl localhost:9999/api/daizhige/article 如上,我们就可以请求到我们的数据了,如果想看到详细的请求信 ...

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

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

  7. 使用CURL模拟表单上传文件

    //以下代码适合PHP7.x PHP5.6$file = new CURLFile('./127.zip','application/octet-stream');$file->setMimeT ...

  8. PHP通过curl模拟POST上传文件,5.5之前和之后的区别

    首先先要着重提一下,只要是做和项目有关的开发,首先按把环境中各个服务的版本保持一致,否则出些莫名其妙的错我,让你百爪挠心却不知哪里的问题.这里就要说下curl_setopt($ch, CURLOPT_ ...

  9. php使用curl 实现GET和POST请求(抓取网页,上传文件),支持跨项目和跨服务器

    一:curl 函数和参数详解 函数库:1:curl_init 初始化一个curl会话2:curl_close 关闭一个curl会话3:curl_setopt 为一个curl设置会话参数4:curl_e ...

随机推荐

  1. Developing Vert.x Modules with Gradle

    ========= https://www.techempower.com/benchmarks/#section=data-r12&hw=peak&test=json ======= ...

  2. Django多表查询

    一.前言 1.什么是ORM? ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候, ...

  3. 关于C#的Main(String[] args)参数输入问题

    关于C#的Main(String[] args)参数输入问题 指定相关的测试代码 首先,写一个用于测试的关于Main(String[] args)参数输入有关的代码类,如下: using System ...

  4. html5 浏览文件

    var fileInput = document.getElementById('test-image-file'), info = document.getElementById('test-fil ...

  5. hdfs性能调优(cloudera)

    参照官方文档:http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/cdh_ig_yarn_tuni ...

  6. React.js小书总结

    (迁移自旧博客2017 08 27) 第一阶段 react的组件相当于MVC里面的View. react.js 将帮助我们将界面分成了各个独立的小块,每一个块就是组件,这些组件之间可以组合.嵌套,就成 ...

  7. make capslock+hjkl as arrows

    Solution 2 (probably better) I was happy with solution 1, until I realized I couldn't use the key bi ...

  8. 10_bash_变量_条件判断及运算_sed_循环

    shell编程: 编译器.解释器编程语言:机器语言.汇编语言.高级语言 静态语言:编译型语言 强类型(变量):变量在使用前,必须事先声明,甚至还需要初始化 事先转换成可执行格式 C/C++.C#.Ja ...

  9. 7_linux用户及权限(2)和管理

    useradd:useradd [options] USERNAME -u UID -g GID(基本组) -G GID,...(附加组) //省略号表示可以有多个,彼此之间用逗号隔开 -c &quo ...

  10. Axure下拉列表的交互事件 + 自定义元件库

    下拉列表的交互事件: 场景:当点击第一个下拉列表框的江苏时,第二个列表框会显示江苏省的城市:当点击第一个下拉列表框的北京时,第二个列表框会显示北京市的区 操作:把第二个列表框设置为动态面板,设置为两种 ...