1

我正在使用 fiddler 来测试我正在编写的 Web API 服务。

我知道我可以通过请求将参数传递给查询字符串中的 RESTful Web 服务 - www.example.com/api/Book?Id=123&category=fiction。

是否有其他方法可以将参数传递给服务,同时仍然使用 GET。

4

1 回答 1

2

HTTP 请求的许多部分可用于传递参数,即 URI、标头和正文。GET 请求没有正文(某些框架实际上允许这样做,但它们并不常见,因此出于所有目的,我们假设它们不能),因此您仅限于标头和 URI。

在 URI 中,您可以在不同的地方传递参数:

  • 查询字符串(正如你已经在做的那样)
    • 例如:www.example.com/api/Book?Id=123&category=fiction
  • 请求路径
    • 许多框架将允许您从请求 URI 中的路径获取操作的参数。使用 ASP.NET Web API,您通常会使用路由来做到这一点
    • 例如:www.example.com/api/Book/fiction/123
  • 在片段中,或者 URI 中#字符之后的部分。请参阅URI RFC,第 3.5 节。
    • 例如:www.example.com/api/Book?Id=123&category=fiction#somethingElse

您还可以在 HTTP 请求标头中传递参数。ASP.NET Web API 支持的一个参数是Accept标头,它在进行内容协商时使用。您还可以从这些标头中获取自定义参数,并在您的操作中读取它们(或者甚至让值提供者读取它们并将它们映射到方法本身的参数)。

于 2013-07-19T21:56:31.300 回答