2011-08-22 60 views
1

在我的應用程序中有一個客戶端和一個WCf REST服務。爲了調用一些wcf服務,即使服務是GET,客戶端也在執行http POST。IIS URL重寫 - 將POST轉換爲GET

我不想在客戶端或服務中做任何更改。

所以,有什麼辦法可以將此POST請求轉換爲GET,並將作爲POST進入的數據添加到URL並調用REST服務。

在此先感謝。

回答

1

您可以使用URL重寫來發出將使用GET方法的3xx重定向,但是您將丟失所有POST數據。知我

唯一安全的方式改寫後要求一些其他的自定義頁面,在那裏你:

  • 收集所有的POST數據/變量;
  • 將它們轉換成GET變量(彙編正確的GET請求);
  • 問題301(或302)重定向到正確的URL(它將所有POST數據作爲GET變量發送)。

這種重寫自定義頁面應該很簡單 - 您需要檢查使用哪種方法(POST或GET),並且僅在POST上調用它。其餘部分將在那個post-to-get腳本中處理。

所有這些複雜性的原因是POST和GET請求的工作方式不同:使用GET所有數據都作爲URL的一部分發送,而POST使用請求主體傳輸變量的數據。

+0

有沒有辦法使用Custom HttpHandlers來做這件事? – Sidharth

+0

也許 - 不幸的是,我不是一個.NET的人,在這方面向你提供建議。 – LazyOne