Опубликовать и перенаправить ИЗ Web Api

Предупреждение.
Этот вопрос не о том, как публиковать сообщения в веб-API, а о том, как публиковать сообщения ИЗ веб-API.

Сценарий:

Мой вопрос связан с комментариями ответа Дарина Димитрова в: Как перенаправить в веб-API ASPNET

и, кажется, дублируется для: 6062248">Response.Redirect, который отправляет данные POST на другой URL-адрес в ASP.NET, но учтите, что вопрос уже старый (2008 г.), и я ищу ответ, что, возможно, WebApi обновлен.

Использование Visual Studio 2012 Web API 2.1

Я получаю данные в своем приложении (это веб-API) через метод POST в контроллере. Все идет нормально. Теперь я хочу опубликовать эти данные (с некоторыми изменениями) на внешнем сайте, который принимает мои данные (это проверено и работает).

Для этого процесса я пробовал два метода:

  1. Создайте строку с базовой формой, которая отправляется с событием «загрузка» с помощью javascript. to-another-url-in-asp-net/6062248#6062248">Response.Redirect, который отправляет данные POST на другой URL-адрес в ASP.NET). Это работает, и именно так я его использую, но, возможно, его можно заменить каким-нибудь лучшим подходом.

  2. С HTTPClient с использованием client.PostAsync . Я также мог бы работать с этим, но я не хочу показывать ответ пользователю, я хочу перенаправить его. Может быть, это можно адаптировать, чтобы сделать редирект?

Вопрос:

Как перенаправить отправку переменных Post без использования обходного пути «onload» или адаптации «HttpClient» для выполнения пост-перенаправления без ожидания ответа?

Соображение: я не публикую никакого кода, потому что реализации моих двух вариантов уже просты, и у меня нет с ними проблем.


person Leandro Bardelli    schedule 11.11.2014    source источник
comment
Я думаю, что варианты, которые вы исследовали (перенаправление через форму на стороне клиента с отправкой onLoad или асинхронное перенаправление на стороне сервера), являются единственными жизнеспособными методами, если вы хотите изменить данные POST перед перенаправлением. Если бы вам не нужно было изменять данные, вы могли бы отправить клиенту ответ 307 с внешним API в заголовке Location (который должен перенаправить запрос POST), но не все браузеры правильно реагируют на ответы 307.   -  person Rudism    schedule 11.11.2014
comment
Спасибо, Рудизм, надеюсь, ты ошибаешься... :(   -  person Leandro Bardelli    schedule 11.11.2014
comment
Это все еще требование в 2018 году, и я до сих пор не могу найти способ сделать это без использования каких-либо из вышеупомянутых хаков.   -  person Neville    schedule 17.05.2018