IIS URL重写 - 将POST转换为GET

时间:2011-08-22 09:11:21

标签: url-rewriting iis-7.5 http-post http-get

在我的应用程序中有一个客户端和一个WCf REST服务。为了调用一些wcf服务,客户端正在进行http POST,即使该服务是GET。

我不想在客户端或服务中进行任何更改。

有没有办法可以将这个POST请求转换为GET,并将作为POST的数据添加到URL并调用REST服务。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以使用URL Rewrite发出使用GET方法的3xx Redirect,但是您将丢失所有POST数据。

我所知道的唯一安全方式将POST请求重写到另一个自定义页面,其中:

  • 收集所有POST数据/变量;
  • 将它们转换为GET变量(组装正确的GET请求);
  • issue 301(或302)重定向到正确的URL(它将所有POST数据作为GET变量发送)。

这样重写到自定义页面应该很简单 - 你需要检查使用什么方法(POST或GET)并且只在POST上调用它。其余的将在后期获取脚本中处理。

所有这些复杂性的原因是POST和GET请求的工作方式不同:使用GET,所有数据都作为URL的一部分发送,而POST使用请求主体来传输变量的数据。