Перенаправление на URL с необработанными данными поста - PullRequest
0 голосов
/ 19 октября 2018

Мой вопрос такой же, как этот: Отправка POST-запроса RAW-данных с HTML-формой? с одним исключением: Ни один из приведенных ответов не будет работать в моей ситуации.

Мне нужно общаться со сторонним API, который, к сожалению, я не контролирую.В основном это происходит на стороне сервера, поэтому я общаюсь через CURL в своем PHP-скрипте.

Однако есть одно место, где я врезаюсь в стену.Мой сервер получает URL-адрес перенаправления от API, на который я должен перенаправить user .Например, они должны посетить эту третью страницу в своем веб-браузере.

Кажется, достаточно просто, просто используйте PHP, чтобы отправить пользователю заголовок перенаправления, верно?Оказывается, я не могу этого сделать, потому что сторонней странице требуются данные POST в заголовке запроса.

Моей следующей мыслью было создать HTML-форму со скрытыми входными данными и отправить ее на стороннюю страницу.Это также не работает, потому что данные POST, которые я должен отправить, являются буквально простой строкой, а не полем формы.Пример: 3d2c993f-1a99-4078-bb56-c10498c65092.По сути, мне нужно избавиться от части 'name =' запроса POST.

Единственный способ найти отправку необработанных почтовых данных на стороне клиента - использовать Javascript XMLHttpRequest.Однако это также не то, что мне нужно, потому что пользователь должен загружать и взаимодействовать со страницей по стороннему URL в своем браузере.

Итак, мне нужен какой-то способ перенаправить моего пользователя на сторонний URL, включая необработанную строку в заголовке POST.Кто-нибудь знает, как это сделать?Мне действительно все равно, если это делается через PHP, HTML или Javascript.

1 Ответ

0 голосов
/ 19 октября 2018

Это то, чего я не делал долгое время, но родная функция PHP stream_context_create - это путь.

http://php.net/manual/en/function.stream-context-create.php

Это в сочетании с перенаправлениемзаголовок доставит вас в путь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...