2011-08-22 62 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