IIS URL 重写 - 将 POST 转换为 GET
在我的应用程序中,有一个客户端和一个 WCF REST 服务。为了调用某些 wcf 服务,客户端正在执行 http POST,即使该服务是 GET。
我不想对客户端或服务进行任何更改。
那么有没有一种方法可以让我将此 POST 请求转换为 GET 并将作为 POST 传入的数据添加到 URL 并调用 REST 服务。
提前致谢。
In my application there is a client and a WCf REST service. For invoking some wcf service the client is doing an http POST even though the service is a GET.
i do not want to do any changes in the client or the service.
So is there a way where i can convert this POST request to GET and add the data coming in as the POST to the URL and invoke the REST service.
Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用 URL 重写来发出 3xx 重定向,该重定向将使用 GET 方法,但您将丢失所有 POST 数据。
据我所知,唯一安全的方法是将 POST 请求重写到另一个自定义页面,您可以在其中:
这种对自定义页面的重写应该很容易——您需要检查使用了什么方法(POST 或 GET)并且仅在 POST 上调用它。其余的将在 post-to-get 脚本中处理。
所有这些复杂性的原因是 POST 和 GET 请求工作方式的差异:对于 GET,所有数据都作为 URL 的一部分发送,而 POST 使用请求正文来传输变量的数据。
You can use URL Rewrite to issue 3xx Redirect which will use GET method, but you will loose all POST data.
The only safe way known to me is to rewrite POST request to some another custom page, where you:
Such rewrite to custom page should be easy -- you need to check what method is used (POST or GET) and only invoke it on POST. The rest will be handled in that post-to-get script.
The reason for all of this complexity is the difference in how POST and GET requests work: with GET all data is sent as part of URL while POST uses request body to transfer variable's data.