• 安装命令行工具
  • 使用httpie
  • 发送POST请求
  • 发送GET请求

    Pandora服务使用七牛统一的签名鉴权服务,我们针对开源的httpie服务,增加了七牛的签名认证功能,使用httpie来发送API请求非常便捷。

    Pandora httpie github地址:https://github.com/kirk-enterprise/httpie

    安装命令行工具

    在命令行中输入以下内容安装:

    1. pip install --upgrade https://github.com/kirk-enterprise/httpie/tarball/master

    小提示:
    pip 是一个Python包管理工具,主要是用于安装 PyPI 上的软件包,使用pip需要保证您的电脑上有python环境,并且已安装pip。

    pip 的简单安装方法: sudo easy_install pip

    !> 注意:若提示安装失败,可在命令行头部加上 sudo 命令

    安装后的工具命令为 http

    使用httpie

    发送POST请求

    1. 发送POST请求需要先将请求的body写在文件中
    1. echo '{
    2. "region": "nb",
    3. "schema": [
    4. {
    5. "key": "userName",
    6. "valtype": "string"
    7. },
    8. {
    9. "key": "age",
    10. "valtype": "float"
    11. },
    12. {
    13. "elemtype": "long",
    14. "key": "addresses",
    15. "valtype": "array"
    16. },
    17. {
    18. "key": "profile",
    19. "schema": [
    20. {
    21. "key": "position",
    22. "valtype": "string"
    23. },
    24. {
    25. "key": "salary",
    26. "valtype": "float"
    27. },
    28. {
    29. "elemtype": "string",
    30. "key": "education",
    31. "valtype": "array"
    32. }
    33. ],
    34. "valtype": "map"
    35. }
    36. ]
    37. }' > body.json
    1. 发送POST请求
    1. http --verbose --ak=<qiniu_ak> --sk=<qiniu_sk> --auth-qiniu-type=pandora/mac POST https://pipeline.qiniu.com/v2/repos/testdemo < body.json

    得到返回:

    1. HTTP/1.1 200 OK
    2. {}

    此时我们创建了一个名为testdemo的消息队列;
    POST请求发送和返回完成。

    发送GET请求

    1. http --ak=<qiniu_ak> --sk=<qiniu_sk> --auth-qiniu-type=pandora/mac GET https://pipeline.qiniu.com/v2/repos/testdemo

    得到返回

    1. HTTP/1.1 200 OK
    2. {
    3. "derivedFrom": "",
    4. "group": "",
    5. "region": "nb",
    6. "schema": [
    7. {
    8. "key": "userName",
    9. "required": false,
    10. "valtype": "string"
    11. },
    12. {
    13. "key": "age",
    14. "required": false,
    15. "valtype": "float"
    16. },
    17. {
    18. "elemtype": "long",
    19. "key": "addresses",
    20. "required": false,
    21. "valtype": "array"
    22. },
    23. {
    24. "key": "profile",
    25. "required": false,
    26. "schema": [
    27. {
    28. "key": "position",
    29. "required": false,
    30. "valtype": "string"
    31. },
    32. {
    33. "key": "salary",
    34. "required": false,
    35. "valtype": "float"
    36. },
    37. {
    38. "elemtype": "string",
    39. "key": "education",
    40. "required": false,
    41. "valtype": "array"
    42. }
    43. ],
    44. "valtype": "map"
    45. }
    46. ]
    47. }