用CURL命令行测试REST API 无疑是低效率的,这里把最近使用的两款 Chrome 插件总结下

  • POSTMAN

    • 简单易用
  • REST Console
    • 功能强大

使用的话用POSTMAN就够用了,但是我更喜欢 REST Console ,因为她的功能非常强大和全面,一下子就能让你搞清楚你在做的事情,你用不到的功能也可以帮助你更加了解 REST, http请求的过程。

下面是两个的截图界面

  1. POSTMAN 测试工具

1. Authorization

  • Basic Auth
  • Digest Auth
  • OAuth 1.0

2. REQUEST METHOD

GET, PUT, POST, PATCH, DELETE, LINK, UNLINK, COPY, HEAD, OPTIONS, PURGE

3. Request Headers

Content-Type:

  • form-data
  • x-www-form-urlencoded
  • raw
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryVQuD0ghtRqDehBQH
Request Payload: ------WebKitFormBoundaryVQuD0ghtRqDehBQH
Content-Disposition: form-data; name="image" dddddd
------WebKitFormBoundaryVQuD0ghtRqDehBQH--
Content-Type:application/x-www-form-urlencoded

Form Data:
image:bbbbbbb
Content-Type:text/plain;charset=UTF-8
Request Payload: image=aaaaaaaaaaaaaa

这3种方法其中 form-data 是不支持 PUT 方法的。而用REST Console中的 Content-Type:multpart/form-data 是支持 PUT 方法的。不知道是不是bug

4. Response Body

支持3种展示方式, 以及常用的XML和JSON格式。

  • Pretty
  • Raw
  • Preview
  • JSON/XML

5. Response Header

Connection →
Connection
Options that are desired for the connection Keep-Alive
Content-Length →93
Content-Type →application/json; charset=UTF-8
Date →Fri, 01 Aug 2014 05:41:56 GMT
Keep-Alive →timeout=5, max=100
Server →Apache/2.2.9 (Win32) PHP/5.4.30 mod_fcgid/2.3.6
X-Powered-By →PHP/5.4.30
  1. REST Console 测试工具

1. Options

软件相关设置,配色,主题,高亮设置等(说明这个东东功能比较全面)

特别说下一个选项就是 Help Lines, 开启这个选项,对着 REST Console的每一个选项,就很容易搞清楚 http 的 请求和响应中的每一个项目是怎么回事

原创文章,转载请注明 : http://www.cnblogs.com/ganiks/

2. Target

设置下面内容:

  • Target

    • Request URI : 这个是请求的 URI
    • Request Method : PUT POST ...
    • Request Timeout
  • Accept
    • Accept: (注意区分这个type和后面的content-type)

      • */*(一般都是这个选项)
      • application/atom+xml
      • test/plain
      • application/javascript
      • application/json
      • application/http
      • application/pdf
      • application/rar
      • ... ...
    • Acceptable Language

3. Body

  • Content Headers

    • Content-Type: mime type of the request body(跟PUT和POST方法配合使用)

      • application/x-www-form-urlencoded
      • text/plain
      • multipart/form-data
      • 这3种是在 POSTMAN中支持的3种,但其实有很多很多种,在 REST Console 中的输入框中输入几个字母,会自动匹配库中的很多选项
    • Acceptable Encoding: 比如 utf-8(参考 HTTP compression)
    • Content-MD5: 比如 Q2hlY2sgSW50ZWdyaXR5IQ==
  • Request Payload
    • RAW BODY: image=ccccccccc
    • Request Params: key=>value
    • Attachements: upload files
  • Custom Headers
    • Request Parameters

对照个例子:

Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:zh-CN,zh;q=0.8,en-US;q=0.6,en;q=0.4
Authorization:Basic MTAwLXRva2VuOg==
Cache-Control:no-cache
Connection:keep-alive
Content-Length:20
Content-Type:text/plain;charset=UTF-8
Host:192.168.4.126
Origin:chrome-extension://fdmmgilgnpjigdojojpjoooidkmcomcm
User-Agent:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36

4. Authorization

  • Basic Auth
  • Setup oAuth
  • Refresh oAuth

5. Headers

  • Headers

    • Max-Forwards: 10 (限制消息可以穿破 的代理和网关的层数)
    • Range
    • From: user@example.com (发送消息者的邮件地址)
    • Warning
    • Pragma
    • ...
  • Cache (内容太多了)
  • Common non-standard request headers

6. Response

  • Response Body: 支持 JSON XML HTML CSS 等高亮格式
{
"id": "162",
"image": "cccccccc",
"link": "dd2",
"show_date": "0000-00-00",
"state": 1,
"show_order": 0
}
  • RAW Body
{"id":"162","image":"cccccccc","link":"dd2","show_date":"0000-00-00","state":1,"show_order":0}
  • Response Headers
Status Code: 200
Date: Fri, 01 Aug 2014 06:39:00 GMT
Server: Apache/2.2.9 (Win32) PHP/5.4.30 mod_fcgid/2.3.6
Connection: Keep-Alive
X-Powered-By: PHP/5.4.30
Content-Length: 94
Keep-Alive: timeout=5, max=100
Content-Type: application/json; charset=UTF-8
  • Response Preview
  • Request Body
Request Url: http://192.168.4.126/news/162
Request Method: PUT
Status Code: 200
Params: {}
  • Request Headers
Content-Type: multipart/form-data
Authorization: Basic MTAwLXRva2VuOg==
Accept: */*
Connection: keep-alive
Origin: chrome-extension: //rest-console-id
User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36
  1. http请求的Accept参数

    ===

上面提到了一个设置的地方, AcceptContent-Type

这两个参数很重要

前者一般如果不设置默认的是 */*, POSTMAN 和 RESTConsole 工具中默认的是 application/json,因此在不设置 Headers:Accept 参数的情况下返回的按照 json格式;

而普通的浏览器中返回的则默认是 application/xml 格式。

后者这个 type 指的是head body 内容的 类型

这就是为什么这两个参数分别被 REST Console 工具分别放在了 2. Target 3. Body 中。

在 yii 中默认支持的 rest api 格式有 xml 和 JSON, yii 会根据 请求的 head 的 Accept 参数来返回对应格式的数据。

这个参数 在chrome 中可以修改默认值吗?

两款 REST 测试工具的更多相关文章

  1. 转载:开发者眼中最好的 22 款 GUI 测试工具

    对于很多同学来说gui程序的测试是一个难点,所以我从网上转载了一篇关于gui测试的一篇文章,里面罗列的很多工具,大家可以尝试一下学习学习. 英文原文:22 best GUI testing tools ...

  2. Rose与PowerDesigner:两款UML建模工具的对比

    声明 本文转载自:Rose与PowerDesigner:两款UML建模工具的对比 正文 本文和大家重点讨论一下Rose与PowerDesigner:两款UML建模工具的对比,Rose和PowerDes ...

  3. 开发者眼中最好的 22 款 GUI 测试工具

    1.Abbot - Java GUI 测试框架 Abbot是一个基于GUI的简单的Java测试框架,它能够帮助开发者测试Java用户界面. 它提供事件自动生成和验证Java GUI组件,使您能够轻松地 ...

  4. Keil MDK 和 IAR 两款ARM开发工具区别比较

    首先要说明,没有那款开发工具是万能的,也没有那款工具在所有方面都具有绝对优势.对于Keil MDK-ARM和IAR两款工具择,可以根据自己的习惯来选择,而不应该在使用其中的一款时贬低另外一款,或者总是 ...

  5. 两款Mongodb可视化工具

    在某些场景下,相比传统的关系数据库和NoSQL数据库,Mongodb拥有不可替代的优势. 例如,最近我需要为收集的大量网站进行分类.实际情况是,一个网站可能同时有多个标签,想象一下新浪网,它既是门户站 ...

  6. 推荐两款Windows管理工具

    1.babun(cgywin) 一款包含cgywin的类似linux shell的软件,熟练linux脚本的小伙伴们,一定会在她身上找到快感. 2.pslist 微软官方的一款很强大的bat脚本,很实 ...

  7. C++ 两款静态检查工具

    pclint(收费) http://www.gimpel.com/html/pcl.htmpc-lint是资格最老,最强力的代码检查工具,但是是收费软件,并且配置起来有一点点麻烦. ccpchecke ...

  8. REST 测试工具

    两款 REST 测试工具 用CURL命令行测试REST API 无疑是低效率的,这里把最近使用的两款 Chrome 插件总结下 POSTMAN 简单易用 REST Console 功能强大 使用的话用 ...

  9. Nginx压力测试工具之WebBench

    Nginx压力测试工具之WebBench   在Apache中有自带的ab命令可以测试服务的压力,而nginx没有自带的命令,必须要采用第三方软件来测试,今天就简单介绍一下webbench对nginx ...

随机推荐

  1. CocoSourcesCS 3

    CocoSourcesCS 3 /*---------------------------------------------------------------------- Compiler Ge ...

  2. [LeetCode][Java] Substring with Concatenation of All Words

    题目: You are given a string, s, and a list of words, words, that are all of the same length. Find all ...

  3. CCPlatformConfig(设置执行平台 iOS android win32等。。。)

    #ifndef __CC_PLATFORM_CONFIG_H__ #define __CC_PLATFORM_CONFIG_H__ /** Config of cocos2d-x project, p ...

  4. C/C++中传值和传地址(引用)

    C/C++中参数传递有两种方式,传值或传地址(传引用),通常我们要在被调用函数中改变一个变量的值就需要传地址调用方式,例如: void swap_by_value(int a, int b) { in ...

  5. vue - webpack.dev.conf.js for CopyWebpackPlugin

    描述:将单个文件或整个目录复制到构建目录 官网地址:https://www.npmjs.com/package/copy-webpack-plugin // 复制到自定义静态源 new CopyWeb ...

  6. 排序(2)---------简单插入排序(C语言实现)

    插入排序(Insertion Sort)的算法描写叙述是一种简单直观的排序算法. 它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到对应位置并插入.插入排序在实现上,通常 ...

  7. 【Linux】监控系统的状态

    1.w命令 w命令是一个很强大的命令,该命令显示的信息比较丰富.以下是我的虚拟机w命令的一个展示 从上图我们可以看到: 第一行从左面开始显示的信息依次为:时间.系统运行时间.登陆用户数.平均负载 第二 ...

  8. 英特尔 Android* 开发者指南上的对等应用

    简单介绍 当没有 Wi-Fi 訪问点或互联网訪问时,Android* 应用可能须要对等连接在两台或多台 Android* 设备之间建立连接. 比方,文件共享应用和多人游戏. 该功能可使用 NFC.蓝牙 ...

  9. IT痴汉的工作现状36-做好准备再上路

    软件开发流程管理是採用瀑布式好还是敏捷好? 如今非常多人会选择敏捷.由于眼下的现状是需求的变化是一天一个样,这是当前(移动)互联网的飞速发展所带来的.当我们仍採用原始的先做全盘的计划.然后在按部就班的 ...

  10. c# webbrowser 清除cookie和缓存

    由于缓存文件是特殊的文件,以及WebBrowser与IE版本有关因此删除缓存绝对不可能用一些IO函数就总可以解决的因此我的这些函数在IO操作的基础上,又针对环境进行相应的清理. static clas ...