Restful Web服务GET请求参数

时间:2013-07-19 18:23:43

标签: rest parameters asp.net-web-api query-string

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

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

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

1 个答案:

答案 0 :(得分: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标头,用于进行内容协商。您还可以从这些标题中获取自定义参数,并在您的操作中读取它们(或者甚至让值提供程序读取它们并将它们映射到方法本身中的参数)。