添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
# http url 参数名=参数值, 默认为POST请求 # 且以json格式来传递(Content-Type为application/json) # 默认也接收json格式的数据(Accept为application/json, */*) http http://localhost:8000/user/login/ username=lemon1 password=123456

3.不同的参数类型

  • query string
  • header
  • field:=json , field:=@file.json 传递json的 Boolean , Number , 嵌套对象, Array类型
    例如: meals:='["ham","spam"]' 或者 pies:=[1,2,3] field@/dir/file 以form表单来上传文件
    --form, -f . screenshot@~/Pictures/img.png
    # 以json格式的字符串来传参(默认)
    http POST http://localhost:8000/user/login/ username=lemon1 password=123456
    # 以form表单来传参
    http -f POST http://localhost:8000/user/login/ username=lemon1 password=123456
    http --form POST http://localhost:8000/user/login/ username=lemon1 password=123456
    # 请求头中的Content-Type为application/x-www-form-urlencoded; charset=utf-8
    # 以查询字符串参数形式来传参
    http -v http://localhost:8000/user/login/ username==lemon1 password==123456
    # 请求头中的请求首行为GET /user/login/?username=lemon1&password=123456 HTTP/1.1
    # 传递请求头参数
    http http://localhost:8000/user/login/ username=lemon1 password=123456 User-Agent:"Mozilla/5.0 KeYou"
    # 查看请求头中的User-Agent参数为 User-Agent: Mozilla/5.0 KeYou
    

    4.获取请求和响应信息

  • 获取响应头
  • 获取响应体
  • 获取请求头
  • -p H 或者 --print=H
  • 获取请求体
  • -p B 或者 --print=B
  • # 获取响应头
    http -h http://localhost:8000/user/login/ username=lemon1 password=123456
    # 获取响应体
    http -b http://localhost:8000/user/login/ username=lemon1 password=123456
    # 获取响应头和响应体(默认)
    http http://localhost:8000/user/login/ username=lemon1 password=123456
    http -p hb http://localhost:8000/user/login/ username=lemon1 password=123456
    # 获取请求头
    http -p H http://localhost:8000/user/login/ username=lemon1 password=123456
    # 获取请求体
    http -p B http://localhost:8000/user/login/ username=lemon1 password=123456
    # 获取请求头和请求体
    http -p BH http://localhost:8000/user/login/ username=lemon1 password=123456
    
  • 登录用户名和密码
  • -a 或者 --auth
  • Basic auth类型的认证才行
  • 同一session会话请求
  • # a.将会话文件保存在指定路径
    # 注: Windows中的路径是以\进行分割的, linux中为/
    http --session=~\s1.json -a lemon1:123456 -p Hh http://localhost:8000/api/login/
    # 登录的session会话, 会保存在家目录下的s1.json文件中
    # b.命名会话
    http --session=s2 -a lemon1:123456 -p Hh http://localhost:8000/api/login/
    # 会话命名为s2
    # Windows系统中会话保存在%APPDATA%\httpie\sessions\<host>\<name>.json文件
    # c. 后续直接使用同一会话去请求
    http --session=~\s1.json http://localhost:8000/projects/ page==2 size==2
    http --session=s2 http://localhost:8000/projects/ page==2 size==2
    
  • JWT token认证
  • # 方法一:
    # a. 先登录获取token
    http http://localhost:8000/user/login/ username=lemon1 password=123456
    # 响应体中有token值
    http http://localhost:8000/projects/ page==2 size==2 Authorization:"JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxNiwidXNlcm5hbWUiOiJsZW1vbjEiLCJleHAiOjE1NzA3NTIyMzksImVtYWlsIjoia2V5b3UwQHFxLmNvbSJ9.p7az1upstXTf-IHHigiISymkz6-Q_O4DC3ouLXnLqLY"
    # b. 可以将JWT设置为环境变量
    # 可以使用Windows平台下的git bash来设置环境变量
    export TOKEN1='eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxNiwidXNlcm5hbWUiOiJsZW1vbjEiLCJleHAiOjE1NzA3NTIyMzksImVtYWlsIjoia2V5b3UwQHFxLmNvbSJ9.p7az1upstXTf-IHHigiISymkz6-Q_O4DC3ouLXnLqLY'
    # c. 后续直接使用同一token去请求
    http -p Hh http://localhost:8000/projects/ page==2 size==2 Authorization:"JWT ${TOKEN1}"
    # 方法二:
    # 可以通过安装httpie-jwt-auth插件来简单高效, 处理JWT认证
    # a. 安装
    pip install -i https://pypi.douban.com/simple httpie-jwt-auth
    # b. 使用
    http --auth-type=jwt --auth="你的token" 你的url地址
    # 默认使用Bearer前缀, 也可以指定其他前缀
    JWT_AUTH_PREFIX=JWT http --auth-type=jwt --auth="你的token" 你的url地址
    # c. 最简单的方法为
    # 设置环境变量, 简化token的传递
    export JWT_AUTH_TOKEN='你的token'
    export JWT_AUTH_PREFIX='JWT'
    http --auth-type=jwt :8000/projects/ page==2 size==2
    # --auth-type可以缩写为-A
    http -A jwt :8000/projects/ page==2 size==2
    
    # 下载资源, 使用--download
    # 类似于wget
    http --download http://localhost:8000/projects/ page==2 size==2 Authorization:"JWT ${JWT1}"
    

    7.请求地址为localhost的简化

  • 如果请求地址为localhost或者127.0.0.1本地地址, 可以省略ip
  • 如果端口号为80, 那么端口号也可省略
  • # 省略ip, 默认的ip为localhost
    http :8000
    http :8000/projects/
    # 省略ip和端口
    # 默认访问的地址为 http://localhost/
    http :
    # 默认访问的地址为 http://localhost/projects/
    http :/projects/
    

    三、总结💡💡

  • 本文重点介绍了HTTPie客户端命令行工具的安装和常用操作
  • 内容较为完整, 且有案例演示
  • 对于做前后端联调、接口测试人员有较强的实际意义
  • 本文为可优原创, 如需转载请联系本人。有不足之处, 欢迎指点!
  •