2013-07-19 217 views
1

我正在使用fiddler來測試我正在編寫的Web API服務。Restful Web服務GET請求參數

我知道我可以在查詢字符串參數傳遞給RESTful Web服務與像一個請求 - www.example.com/api/Book?Id=123 &類別=小說。

是否有其他方式將參數傳遞給服務,同時仍然使用GET。

回答

2

HTTP請求的許多部分可用於傳遞參數,即URI,標頭和正文。 GET請求沒有主體(一些框架實際上允許這樣做,但它們並不常見,所以出於各種目的,我們假設它們不能),所以你只能使用頭部和URI。

在URI,你可以在不同的地方傳遞參數:

  • 查詢字符串(如你已經做)
    • 例:www.example.com/api/Book?Id= 123 &類別=小說
  • 請求路徑
    • 許多框架將允許您從路徑獲得的參數你的行動請求URI。隨着的ASP.NET Web API,你通常做,使用路由
    • 例:www.example.com/api/Book/fiction/123
  • 在片段,或URI的後部分#角色。請參閱URI RFC,第3.5節。
    • 例:www.example.com/api/Book?Id=123 &類別=#小說somethingElse

您也可以通過paramters在HTTP請求頭。 ASP.NET Web API所支持的一個參數是Accept標頭,它在進行內容協商時使用。您也可以期待這些頭文件中的自定義參數,並在您的動作中讀取它們(或者甚至具有將讀取它們並將它們映射到方法本身中的參數的值提供程序)。