Linux下提供了一些命令可以直接执行http请求,下面举例来介绍几个命令。

http

// GET请求
http http://127.0.0.1:2379/version
http GET http://127.0.0.1:2379/v2/keys/message
// PUT请求
http PUT http://127.0.0.1:2379/v2/keys/message value=="hello"
http PUT http://127.0.0.1:2379/v2/keys/tempkey value=="Gone" ttl==5
// DELETE请求
http DELETE http://127.0.0.1:2379/v2/keys/message
// POST请求
http POST http://127.0.0.1:8081/api/v1/platform/create name='123' code='123' url='http://www.baidu.com'

curl

curl请求有许多参数,如下

-X/--request [GET|POST|PUT|DELETE|…]  指定请求的方式
-H/--header 指定请求header
-i/--include 显示返回的header
-d/--data 指定参数
-v/--verbose 输出更详细信息
-u/--user 授权帐号和密码
-b/--cookie cookie

下面针对每个参数举例说明如何使用

GET/POST/PUT/DELETE

curl -X GET "http://www.rest.com/api/users"
curl -X POST "http://www.rest.com/api/users"
curl -X PUT "http://www.rest.com/api/users"
curl -X DELETE "http://www.rest.com/api/users"

HEADER

curl -v -i -H "Content-Type: application/json" http://www.example.com/users

参数

// 使用`&`串接多個參數
curl -X POST -d "param1=value1&param2=value2"
// 也可使用多個`-d`,效果同上
curl -X POST -d "param1=value1" -d "param2=value2"

JSON格式资料

如果需要同时传送request parameter和json,request parameter可以加在url后面,json资料放入-d的参数,header要加入"Content-Type:application/json"

curl http://www.example.com?modifier=kent -X PUT -i -H "Content-Type:application/json" -H "Accept:application/json" -d '{"boolean" : false, "foo" : "bar"}'

// 不加"Accept:application/json"也可以
curl http://www.example.com?modifier=kent -X PUT -i -H "Content-Type:application/json" -d '{"boolean" : false, "foo" : "bar"}'

需要认证或登录

这部分主要有两种方式:session和cookie。

后端如果是session记录使用者登录信息会回传一个session id给前端,前端需要在每次跟后端的requests的headers中置入此session id,后端便会以此session id识别前端是属于哪个session。

curl --request GET 'http://www.rest.com/api/users' --header 'sessionid:1234567890987654321'

如果是使用cookie,在登录后,后端会回一个cookie回来,把该cookie存档,当下次请求时,再用-b cookie_file的方式在request中植入cookie即可。

// 將cookie存檔
curl -i -X POST -d username=kent -d password=kent123 -c ~/cookie.txt http://www.rest.com/auth
// 載入cookie到request中
curl -i --header "Accept:application/json" -X GET -b ~/cookie.txt http://www.rest.com/users/1

Authentication

如果网站采用了HTTP基本认证,可以使用--user username:password进行授权

curl -i --user suraer:secret "http://www.rest.com/api/foo"

参考链接: http://ju.outofmemory.cn/entry/84875

wget

和curl相似的,如果url路径指向一个文件或者图片的话,可以直接下载该文件或者图片。

这里只距离说明发送get和post请求的简单使用,具体内容可以查看相关资料。

// get请求
wget "http://www.baidu.com"
// post请求
wget --post-data 'user=foo&password=bar' http://www.baidu.com

LInux命令执行http请求的更多相关文章

  1. Linux命令执行顺序— ||和&&和; 比较

    Linux命令执行顺序— ||和&&和; command1 && command2: &&左边的command1执行成功(返回0表示成功)后,& ...

  2. Java调用Linux命令执行

    调用方式 Java调用linux命令执行的方式有两种,一种是直接调用linux命令,一种是将linux命令写到.sh脚本中,然后调用脚本执行. 详细说明 直接调用:使用java中lang包下面的Run ...

  3. Linux命令执行过程

    目录 一.命令分类 二.命令执行顺序 三.命令分类及查找基本命令 四.命令执行过程 一.命令分类 Linux命令分为两类,具体为内部命令和外部命令 内部命令: 指shell内部集成的命令,此类命令无需 ...

  4. Linux命令执行顺序— ||和&&和;

    command1 && command2: &&左边的command1执行成功(返回0表示成功)后,&&右边的command2才能被执行. comman ...

  5. Linux命令执行的屏幕输出内容重定向到日志文件

    摘要: 作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 快速mark一下这个命令细节,免得以后使用又忘记了 大家都知道可以用echo来输出内容到 ...

  6. Linux命令执行顺序与管道命令

    命令执行顺序控制 顺序执行多条命令:command1;command2;command3... 有选择执行命令:which command1 && command2 || comman ...

  7. linux命令执行返回值(附错误对照表)

    转自:http://blog.sina.com.cn/s/blog_6739945f0100zt4b.html 在 Linux 下,不管你是启动一个桌面程序也好,还是在控制台下运行命令,所有的程序在结 ...

  8. Linux 命令执行结果输出到屏幕的同时写入到文件中

    tee命令可以做到这一点: 例:ls -al /home | tee log 就可以把命令输出的内容显示在屏幕上的同时也输出至文件log.

  9. 用linux 命令 执行ci框架的方法

    最近要跑一个数据量比较大的脚本,刚开始在浏览器页面访问发行nginx 5.4 超时, 又不想去修改nginx的连接时间,只能在服务器执行了, 执行方法:进入到ci 的根目录:#php index.ph ...

随机推荐

  1. Java并发--Thread类详情

    以下是本文的目录大纲: 一.线程的状态 二.上下文切换 三.Thread类中的方法 转载原文链接:http://www.cnblogs.com/dolphin0520/p/3920357.html 一 ...

  2. 洛谷 P2828 Switching on the Lights(开关灯)

    传送门 题目大意:n*n的网格,每个网格是一个房间 都关着灯,只有(1,1)开着灯,且(x,y)有着(z,k)房间灯的开关. 问从(1,1)开始走最多点开几盏灯. 题解:搜索+骗分. 劳资的骗分天下无 ...

  3. uploadify onComplete 不执行?

    这个问题纠结了2小时.最后发现在最新版的uploadify 没有 onComplete  事件了. 我去.... 详情看官网:http://www.uploadify.com/documentatio ...

  4. 一张elixir生产环境部署的图

  5. nginx fastcgi 优化

    fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m inactive=5m; fastcgi ...

  6. 申请apple开发人员账号的波折

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/xiebaochun/article/details/37578395 是的.po主要搞ios开发了, ...

  7. bzoj 4815 [Cqoi2017]小Q的表格——反演+分块

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4815 大概就是推式子的时候注意有两个边界都是 n ,考虑变成 2*... 之类的. 分块维护 ...

  8. input type=number 禁止输入字符“e”的办法

    输入框input,的type设置为number,本想只输入数字,但是字符“e”却能通过, 首先科普一下, <body> <input onkeypress="getCode ...

  9. 初识C++模板元编程(Template Mega Programming)

    前言:毕设时在开源库上做的程序,但是源码看得很晕(当时导师告诉我这是模板元编程,可以不用太在乎),最近自己造轮子时想学习STL的源码,但也是一样的感觉,大致了解他这么做要干什么,但是不知道里面的机制. ...

  10. Nginx优化指南

    大多数的Nginx安装指南告诉你如下基础知识——通过apt-get安装,修改这里或那里的几行配置,好了,你已经有了一个Web服务器了!而且,在大多数情况下,一个常规安装的nginx对你的网站来说已经能 ...