65.9K
CodeProject 正在变化。 阅读更多。
Home

用于与RESTful服务通信的编辑器

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.75/5 (3投票s)

2009 年 3 月 3 日

公共领域

3分钟阅读

viewsIcon

29588

downloadIcon

614

一个允许用户对 URI 执行 GET、PUT、POST 或 DELETE 数据操作的 Windows 应用程序 (.NET)

GoMenu.gif

引言

这是一个应用程序,通过允许用户编辑发送到服务器的原始 HTTP 并查看原始 HTTP 响应,来帮助测试/修改 RESTful 服务。

背景

REST 代表 Representational State Transfer(表述性状态转移)。它是一种非常简单的应用程序开发架构风格,其中对象通过一组固定的方法进行操作。 在许多情况下,REST 是通过 HTTP 实现的,因为它非常适合这项任务。 对象由 URI 表示,方法集为 POSTPUTGETDELETE。 我不会在这里详细介绍 REST,但您可以在我的链接部分找到更多信息。

这种方法的问题在于,大多数浏览器都不支持 GETPOST 之外的任何内容。 所以,我拼凑了这个小应用程序来完成这项工作。 我用它来帮助我测试我的一个 RESTful 服务,并且证明它非常方便。

使用应用程序

该应用程序允许您在请求面板(左侧面板)中键入原始 HTTP。 然后,您可以将 HTTP POSTPUTGETDELETE 到给定的 URI。 默认情况下,RESTPad 会对您的条目进行一些小的更正。 它会将地址栏中的 URI 替换为您可能已输入到请求中的任何 URI。 它还会更正您的内容长度。 如果您不希望自动更正,可以通过取消选中选项 -> 使用自动更正来关闭它。

关注点

如果您输入了 content-encoding 标头,RESTPad 将遵守它并使用 gzip 或 deflate 发送请求。(它目前不理解任何其他形式的编码。)

在内部,RESTPad 使用 HttpWebRequest 类。 RESTPad 的非常早期的版本使用的是原始套接字,但 HttpWebRequest 类使太多的事情变得太方便而无法错过。 不幸的是,它也有一些怪癖,例如不允许您通过通用的“headers”集合设置某些标头。 RESTPad 了解一些此类标头,但可能有一组 RESTPad 会尝试以通用方式设置的标头,导致 HttpWebRequest 对象报错。 如果您需要这样的标头,只需修改代码以专门处理该标头,就像它目前处理 content-encoding、content-length 等一样。

REST 入门

这有点离题,但这里有一些关于 REST/某些 RESTful 服务文档的基本链接。

源代码控制

我非常喜欢 Mercurial,所以我在 bitbucket.org 上托管了源代码。 您可以拉取存储库,如果您真的想,我可以将您添加为贡献者。

历史

  • 2009 年 3 月 1 日 - 更新以支持通过选项菜单中的项目指定凭据
  • 2009 年 3 月 2 日 - 修改为不再将输出转储到磁盘,添加了处理指示
  • 2009 年 3 月 3 日 - 修复了 content-header 错误和错误处理中的错误

这目前是一个 beta 版本,形式相当粗糙,但仍然有用。 我计划在不久的将来在 Codeplex 或 Sourceforge 上设置它。

该代码是公共领域,所以拿走它并做你想做的事。 如果你添加了一些非常好的东西,与大家分享会很好。

© . All rights reserved.