curl命令用来做HTTP协议的客户端,可以通过命令参数生成各种请求,非常强大。

1. GET

默认情况下下curl执行的是GET操作,所以可以当做wget使用如

$ curl https://www.baidu.com

现在百度使用了https协议,但是这个结果还是有点奇怪的,使用https地址却又想让你去访问http。但是浏览器直接输入https地址,观察网络情况却没有这个过程。所以可能是百度根据请求头的User-Agent做了一些判断。那么可以在命令中使用-A参数来指定User-Agent(chrome的UA字串)如:

$ curl https://www.baidu.com -A 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36'

此时就会有百度首页的内容返回。

2. POST/PUT

如果不是进行GET请求需要在命令中另外指定请求类型使用-X参数如:

-XPUT-XPOST

PUT和POST请求都是可以带请求体的,他们通过-d指定,另外使用-v参数可以打开verbose模式观察http协议通信情况:

$ curl -XPOST http://www.baidu.com/ -d 'a=1&p=1' -v

* Hostname was NOT found inDNS cache* Trying 115.239.211.112...* Connected to www.baidu.com (115.239.211.112) port 80 (#0)> POST / HTTP/1.1

> User-Agent: curl/7.35.0

>Host: www.baidu.com> Accept: */*> Content-Length: 7

> Content-Type: application/x-www-form-urlencoded

>

* upload completely sent off: 7 out of 7 bytes

< HTTP/1.1 302 Moved Temporarily

< Date: Wed, 03 Jun 2015 02:30:05 GMT

< Content-Type: text/html

< Content-Length: 215

< Connection: Keep-Alive

< Location:http://www.baidu.com/search/error.html* Server BWS/1.1 is not blacklisted

< Server: BWS/1.1

< X-UA-Compatible: IE=Edge,chrome=1

< BDPAGETYPE: 3

< Set-Cookie: BDSVRTM=0; path=/

<

302 Found

302 Found


pr-nginx_1-0-224_BRANCH Branch

Time : Thu May 28 14:42:58 CST 2015

* Connection #0 to host www.baidu.com left intact

">"开头的行是本机发出的信息,"

上面向百度POST了一个请求,当然是乱来的,所以对方响应了一个302把目标指向一个错误页面。还可以发现POST请求默认使用的Content-Type是

application/x-www-form-urlencoded

如果我们使用POST来测试一些RESTful接口的话,必须手工指定Content-Type为application/json(假设一般接口都是用json形式接收参数),否则服务端接收到的数据会含有%开头的编码,可以使用-H来指定Content-Type这个HTTP头

curl -XPOST 'http://ip:port/api/resource' -d '{"name":"hi"}' -H 'Content-Type: application/json'

linux在线更新curl,Linux:curl相关推荐

  1. curl上传文件linux,在Linux中如何使用curl从一个服务器流式传输文件到另一个服务器(有限的服务器资源)...

    我的API服务器具有非常有限的磁盘空间(500MB)和内存(1GB).它获得的API调用之一是接收文件.消费者调用API并传递要下载的URL. 我的服务器的"目标"是将此文件上传到 ...

  2. nginx curl linux,linux nginx 下通过curl url方式,符以后的参数无效

    linux nginx 下通过curl url方式,&符以后的参数无效 nginx转发get请求丢失参数 ngixn转发,接口为get请求时参数会丢失,post不会出现问题.原因:get请求参 ...

  3. Linux | (WGET、Curl、Aria2、Axel)的最佳命令行下载加速工具【详解】

    简介: 在远程服务器或者本地工作时,您可能经常需要从外部源获取内容.要获得这样的内容,特别是当您没有其他选项时,您将需要使用Linux命令行工具来完成这项工作. 在本篇文章当中,我们将介绍一些最常用的 ...

  4. 渗透测试Linux命令手册(包含curl,grep,ss,ssh)

    这里给出的Linux命令都是渗透当中比较常见的 建议直接使用Ctrl+F查找 文章目录 Curl命令 curl -o curl -O curl -I curl -H curl -d curl -L c ...

  5. 【linux查看出口IP(curl cip.cc)】

    linux查看出口IP(curl cip.cc) 通过curl cip.cc命令查看服务器外网ip

  6. Linux系统中安装curl

    curl是一个使用URL语法在命令行下使用的文本传输工具,下面为大家分享一下如何安装curl. ​ curl简介: curl是一个广泛使用的用来上传和下载的命令行工具,当然严格来讲,它还可以有别的用途 ...

  7. Linux C语言通过curl下载https资源

    Linux C语言通过curl下载https资源代码如下,注意需要把main函数 char *url 赋值为需要下载文件的路径. #include <curl/curl.h> #inclu ...

  8. Linux常用命令08 - curl

    curl 是一个命令行实用程序,用于将数据从服务器或传输到服务器,该服务器设计用于在没有用户交互的情况下工作. 使用 curl,您可以使用支持的协议(包括 HTTP. HTTPS. SCP. SFTP ...

  9. linux curl命令 post,linux环境下使用curl命令设置Header参数发送post请求

    linux环境下使用curl命令设置Header参数发送post请求 linux环境下使用curl命令设置Header参数发送post请求 案例1:curl命令发送post请求并且获取返回结果以及响应 ...

  10. linux redis病毒,Linux系统之Redis扩散病毒继续分析

    *        soft    nproc       100000 root     hard    nproc       100000 root     soft    nproc       ...

最新文章

  1. Spring5参考指南:Bean的创建
  2. python 文件遍历
  3. 彩虹云任务极致精简版--PHPcron程序
  4. qn模块java脚本_Qn271 对于网络编程 反射 IO 线程的一些一本入门程序 多多联系会加快 速度 WinSock-NDIS 269万源代码下载- www.pudn.com...
  5. java高并发日志_高并发下log4j的性能瓶颈
  6. mac Desktop 在Terminal 无法访问,错误提示:ls: .: Operation not permitted
  7. 如何降低软件项目的风险 -- 包括客户的风险,软件提供商的风险
  8. java添加购物车代码_Java web实现购物车功能的示例代码
  9. JAVA流程图——主要用于循环
  10. SpringBoot官方文档学习
  11. 格力空调售后服务管理系统
  12. [09-Dec-2012] 《少年pi的奇幻之旅》 -推荐
  13. python爬房源信息_Python:爬取airbnb房源信息(Selenium)
  14. 互联网产品运营——什么是产品运营?
  15. 最大数字 题解 (删除k个数字----贪心)
  16. byte java 详解_详解java中的byte类型
  17. NFDATA定义的一个细节
  18. 西电计科计算机视觉期末复习笔记
  19. wget linux
  20. bilibili怎么用用户名登录_b站怎么用用户名登录 bilibili如何用用户名登录

热门文章

  1. Docker实战(精简版本)
  2. Vue3---vue组件库
  3. angular封装富文本编辑器指令
  4. mysql数据迁移neo4j_neo4j数据库迁移---------Neo4j数据库导入导出的方法
  5. simulink方框_4.4设计Simulink框图的界面
  6. javaee 中文帮助文档_大牛耗时三天整理的:微服务+Nginx+Kubernetes实战文档和面试题...
  7. 移动场景在其缩略图中显示场景中所显示的区域
  8. C语言 va_end 宏 - C语言零基础入门教程
  9. Python 线程障碍对象 Barrier - Python零基础入门教程
  10. linux启动tongweb命令,linux7开机自启动东方通tongweb