IIS URL Rewrite - конвертировать POST в GET - PullRequest
1 голос
/ 22 августа 2011

В моем приложении есть клиент и служба WCF REST.Для вызова некоторой службы wcf клиент выполняет HTTP POST, даже если служба является GET.

Я не хочу вносить какие-либо изменения в клиент или службу.

Так что естьспособ, которым я могу преобразовать этот запрос POST в GET и добавить данные, поступающие как POST, в URL и вызвать службу REST.

Заранее спасибо.

1 Ответ

1 голос
/ 22 августа 2011

Вы можете использовать URL Rewrite для выпуска 3xx Redirect, который будет использовать метод GET, но вы потеряете все данные POST.

Единственный известный мне безопасный способ - переписать POST-запрос на другую пользовательскую страницу , где вы:

  • собрать все данные / переменные POST;
  • преобразовать их в переменные GET (собрать правильный запрос GET);
  • выпуск 301 (или 302) Перенаправить на правильный URL (все данные POST будут отправлены как переменные GET).

Такое переписывание на пользовательскую страницу должно быть простым - вам нужно проверить, какой метод используется (POST или GET), и вызывать его только на POST. Остальное будет обработано в этом сценарии после получения.

Причиной всей этой сложности является различие в том, как работают запросы POST и GET: при GET все данные отправляются как часть URL, а POST использует тело запроса для передачи данных переменной.

...