доступ к объекту Java HTTP Request с переполнением стека

Я работаю в среде php и хочу получить объект Java HTTP Request. это будет из внешнего источника на сайт хоста.

объект будет в следующем формате:

 POST /fail?installation=XXXXXX&msgType=authResult HTTP/1.0
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
Host: www.worldpay.com
Content-Length: 973
User-Agent: WJHRO/1.0 (worldPay Java HTTP Request Object)

region=new+format+region&authAmountString=%26%23163%3B10.00&_SP.charEnc=UTF8&desc=&tel=&address1=new+format+address1)

я понимаю из Java, что я могу получить доступ к объекту запроса Java, как это;

protected void doGet(
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {

String param1 = request.getParameter("param1");
String param2 = request.getParameter("param2");

}

для меня проблема в том, что я работаю в php и мне нужно преобразовать строковые параметры в формат PHP / $ varables.

я не могу найти какой-либо онлайн-материал, который мог бы помочь мне в этом, и был бы очень признателен за советы о том, как конвертировать его

0

Решение

Это стандартный запрос HTTP POST. «WorldPay Java HTTP Request Object» означает только то, что он отправляется службой на основе Java. Так что вы не увидите ничего связанного с Java в вашем PHP-приложении. Используйте стандартные функции PHP для доступа к данным запроса. Для запросов POST это $_POST массив.

0

Другие решения

Поскольку вы используете протокол HTTP, вам все равно, на каком клиенте и сервере написаны. Если вы используете PHP для бэкэнда, вам просто нужно изучить, что PHP использует для переноса входящего HTTP-запроса (это не имеет никакого отношения к вашей Java) ,

PHP извлекает данные POST в $_POST суперглобальная переменная и строка запроса в $_GET:

$msgType = $_GET['authResult'];
$installation = $_GET['installation'];

Из вашего дампа видно, что вся эта магия Java просто объединяется, URL кодируется и помещает данные в тело POST:

$contents = file_get_contents('php://input'); // read request contents
$data = explode('&', $contents);
foreach($data as &$entry) {
$entry = explode('=', $entry);
$entry[1] = urldecode($entry[1]);
}
unset($entry);

Это должно привести к следующей структуре:

$data = [
['region', 'new format region'],
...
];

Вы можете изменить формат вывода на любой, который вы предпочитаете.

0

По вопросам рекламы [email protected]