草庐IT

httpie

望书 2023-10-17 原文

一、HTTP入门

1、什么是http协议

http协议即按一定规则,客户端向服务器发送数据,而服务器按一定规则回应数据。

2、HTTP请求信息和响应信息

请求:

(1) 请求行

请求方法:

        有GET、POST、HEAD、PUT、DELETE、PATCH、OPTIONS、TRACE等。

        HEAD 和 GET 基本一致,只是不返回内容。 比如我们只是确认一张图片是否还存在,不需要返回这张图片。

        TRACE:是使用了代理上网,比如用代理访问www.baidu.com,你想看看代理有没有修改你的HTTP请求,可以用TRACE来测试一下,www.baidu.com的服务器就会把最后收到的请求返回给你。

        OPTIONS:返回服务器可用的请求方法。

请求路径:

URL的一部分。

请求所用的协议版本:

所用协议目前一般是HTTP/1.1,0.9和1.0已经基本不用。

2. 请求头信息

3. 请求主体信息(可以没有)

如果请求是post请求,就需要有请求体信息,并且要有Content-length(请求体信息长度)和Content-type(请求体信息类型)这两个字段。

举个栗子:

POST /lalala/01.html HTTP/1.1

HOST: localhost

Content-type: application/x-www-form-urlencoded

Content-length: 5

age=3

响应:

1. 响应行

(1) 协议版本

(2) 状态码

        用来反应服务器响应情况的。

        最常见的有:

        200 OK 请求成功

        302 Found  重定向

        304 Not Modified 请求资源未修改,从浏览器缓存中获取

        307 重定向中还保存原有的请求数据

        404 NOT FOUND 请求资源未找到

(3) 状态文字

        用来描述状态码,便于观察。

2. 响应头信息

3. 响应体信息

举个栗子:

HTTP/1.1 200 OK

Content-type: text/html

Content-length: 5

hello

二、httpie的优势

1、语法简单,易于表达

2、格式化和可定制的终端输出

3、兼容Linux、MacOS、Windows操作系统

三、httpie安装下载

1.pip的安装

由于我们使用python作为后端,python捆绑的pip可以很方便地下载httpie。

如果没有捆绑下载pip,可以在https://pypi.org/project/pip/上下载pip。

2.pip安装工具的更新

我们用cmd打开命令行,输入pip install --upgrade pip setuptools可以更新pip安装工具。

3.pip下载httpie

在命令行中输入pip install --upgrade httpie可以下载或更新httpie

四、httpie使用

1、httpie的语法与参数

http [flags] [METHOD] URL [ITEM [ITEM]]

2、简单使用

例子:http http://localhost:80/login

简写:http :/login

提示:http://localhost和端口号(80)可以省略


3、请求例子

#显示请求信息(包含返回头200)

http mimvp.com


#显示详细的请求(包含请求和返回头200)

http -v mimvp.com


#只显示Header

http -h mimvp.com

http --head mimvp.com

http --header mimvp.com

http --headers mimvp.com


#只显示Body

http -b mimvp.com

http --body mimvp.com


#下载文件

http -d mimvp.com


#模拟提交表单

http -f POST mimvp.com username='mimvp-user'


#请求删除的方法

http DELETE mimvp.com


#传递JSON数据请求(默认就是JSON数据请求)

http PUT mimvp.com username='mimvp-user' password='mimvp-pwd'


#如果JSON数据存在不是字符串则用:=分隔,例如

http PUT mimvp.com username='mimvp-user' password='mimvp-pwd' age:=28 a:=true streets:='["a", "b"]'


#模拟Form的Post请求, Content-Type: application/x-www-form-urlencoded; charset=utf-8

http --form POST mimvp.com username='mimvp-user'


#模拟Form的上传, Content-Type: multipart/form-data

http -f POST example.com/jobs username='mimvp-user' file@~/test.pdf


#修改请求头, 使用:分隔

http mimvp.com  User-Agent:mimvp-agent/1.0  'Cookie:a=b;b=c'  Referer:http://mimvp.com/


#认证

http -a username:password mimvp.com

http --auth-type=digest -a username:password mimvp.com


#使用http代理

http --proxy=http:http://217.107.197.174:8081 proxy.mimvp.com

http --proxy=http:http://user:pass@217.107.197.174:8081 proxy.mimvp.com

http --proxy=https:http://112.114.96.34:8118 proxy.mimvp.com

http --proxy=https:http://user:pass@112.114.96.34:8118 proxy.mimvp.com

有关httpie的更多相关文章

  1. httpie - 2

    一、HTTP入门1、什么是http协议http协议即按一定规则,客户端向服务器发送数据,而服务器按一定规则回应数据。2、HTTP请求信息和响应信息请求:(1)请求行请求方法:    有GET、POST、HEAD、PUT、DELETE、PATCH、OPTIONS、TRACE等。    HEAD和GET基本一致,只是不返回内容。比如我们只是确认一张图片是否还存在,不需要返回这张图片。    TRACE:是使用了代理上网,比如用代理访问www.baidu.com,你想看看代理有没有修改你的HTTP请求,可以用TRACE来测试一下,www.baidu.com的服务器就会把最后收到的请求返回给你。   

  2. python - token 认证 Django Rest Framework HTTPie - 2

    你好,我正在尝试测试token身份验证,我已经按照下面的教程使用httpie通过DRF实现了link以下命令:httpGET127.0.0.1:8000/api/projects/'Authorization:Tokenb453919a139448c5891eadeb14bf1080a2624b03'产生以下错误。usage:http[--json][--form][--pretty{all,colors,format,none}][--styleSTYLE][--printWHAT][--headers][--body][--verbose][--all][--history-pri

  3. json - 使用 HTTPie 发送嵌套的 JSON 对象 - 2

    我正在尝试使用HTTPie解析以发送一些嵌套的JSON对象,但我找不到如何。很清楚如何发送JSON对象而不是嵌套对象,例如{"user":{"name":"john""age":10}} 最佳答案 2022年1月发布的HTTPie3.0更新:现在使用HTTPie语言内置了对嵌套JSON的支持:$httppie.dev/post\tool[name]=HTTPie\tool[about][homepage]=httpie.io\tool[about][mission]='MakeAPIssimpleandintuitive'\tool

  4. json - 使用 HTTPie 发送嵌套的 JSON 对象 - 2

    我正在尝试使用HTTPie解析以发送一些嵌套的JSON对象,但我找不到如何。很清楚如何发送JSON对象而不是嵌套对象,例如{"user":{"name":"john""age":10}} 最佳答案 2022年1月发布的HTTPie3.0更新:现在使用HTTPie语言内置了对嵌套JSON的支持:$httppie.dev/post\tool[name]=HTTPie\tool[about][homepage]=httpie.io\tool[about][mission]='MakeAPIssimpleandintuitive'\tool

随机推荐