开发过程中,一种简单的方法来测试 HTTP 请求

Web 和 Web 服务开发者经常需要发送 HTTP 请求,无论是为了测试 API、测试 REST 和 SOAP Web 服务,还是管理网站。

XMLSpy 通过其 HTTP 窗口和 WADL/WSDL 导入向导,可以在 XML 和 JSON 编辑器中轻松发送和接收 HTTP 请求,这是一款非常实用的工具,可以节省大量时间,尤其是在调试 Web 服务时。

测试 HTTP 请求

HTTP协议定义了文件(如文本、图像等)如何在互联网上传输。每个Web服务器都运行一个程序(称为守护进程),该程序会持续等待HTTP请求,并在收到请求时进行处理。

例如,当您访问一个网站的主页时,您的浏览器会向该网站的服务器发送一个HTTP命令,请求下载主页;服务器上的HTTP守护进程接收到这个请求,并发送请求的页面。需要注意的是,HTTP协议是无状态的,这意味着每个HTTP命令都是独立执行的,不依赖于之前的或之后的命令——这可能会给测试和调试带来挑战。

为了帮助开发者完成这项工作,XMLSpy 中的 HTTP 测试窗口 会引导您完成创建和发送 HTTP 请求到 Web 服务器的整个过程。然后,您可以接收、检查和排查响应。

在窗口的左侧面板中,会定义一个请求,该请求可能包含以下内容:

  • 请求的 HTTP 方法(例如 GET、PUT、POST 等)以及目标 URL
  • 请求的 HTTP 头部信息
  • 连接设置,例如超时设置和安全选项
  • 对于 POST 和 PUT 方法,HTTP 消息体是:

HTTP窗口包含九个独立的标签页,您可以利用这些标签页来存储和测试多个消息,并在需要时在它们之间进行切换。

当请求定义完成后,点击“发送”按钮,将请求发送到Web服务器。您可以在右侧面板中立即分析响应结果,该面板会显示响应内容(如上所示)以及头部信息

导入 WADL 或 WSDL 请求

您还可以通过导入一个 WADL (Web Application Description Language) 文件来启动测试。该文件提供了一种机器可读的、关于基于 HTTP 的应用程序的描述,或者导入一个 WSDL 文档,该文档描述了 SOAP Web 服务的端点。

XMLSpy 的 HTTP 窗口包含一个 WADL/WSDL 导入向导,它会引导您完成以下步骤:打开文件、选择用于测试的请求,以及修改请求中任何可编辑的参数。

然后,它会将请求导入到 HTTP 窗口,这样您就可以发送请求并查看响应。

调试 REST API

让我们来看一个实际例子,利用 HTTP 窗口来测试来自 Web API 的响应。芝加哥市政府数据门户 (City of Chicago Data Portal) 是一个公开的 REST API,它提供了关于各种有趣的数据,例如建筑许可证、市政府预算,以及该市哮喘住院人数等。

在这个例子中,我们将深入研究“交通”类别,并重点关注一个关于“闯红灯”违规行为的数据集。我可以在HTTP窗口中输入网址,以获取整个数据集。在请求末尾添加“.xml”或“.json”可以指定返回数据的格式。这次我选择了XML格式,但当然,XMLSpy内置了处理这两种格式的工具。您可以在下方看到HTTP窗口返回的结果。

我们可以在结果面板中查看数据,或者点击“创建新文档”来在 XMLSpy 中以文本或表格视图打开该文档。这样可以更方便地浏览和检查 API 返回的数据。

有了存储在文件中的数据,我们还可以进一步利用XQuery进行更精确的分析。 让我们来看看那些出现超过20次违规行为的摄像头位置。

现在,我们再次获取数据,但这次以 JSON 格式获取。

这里以文本视图打开

您还可以在 XMLSpy 的独特 JSON 网格视图中查看 JSON 数据,以获得图形化的呈现方式。JSON 网格视图可以大大简化数据的浏览和理解,尤其是在处理大型数据集时。此外,JSON 编辑器还内置了使用 XQuery 进行数据过滤的功能,如下所示。我已对数据进行过滤,以显示包含 Halsted 街的记录。

HTTP 窗口,以及内置的查看和编辑工具,使得 XMLSpy 成为一个非常棒的工具,可用于测试和调试 API、Web 服务以及其他 HTTP 应用程序。

下载 XMLSpy 的 免费试用版,体验 HTTP 窗口功能。