Как захватить данные CURL / XML с Apache?
Я разрабатываю сценарий шлюза, который должен отправить информацию на сервер другого провайдера, и мне нужно отладить код.
Есть ли способ на моем собственном сервере Linux + Apache + PHP захватить данные CURL / XML из этого сценария?
Я знаю с помощью PHP, что я мог видеть, например, данные $_POST, $_GET или $_REQUEST в скрипте, но с CURL я фактически не могу получить доступ к скрипту http://intranet/capture.php в моем браузере - так что это не работает.
Есть ли другой способ, с помощью сценария на сервере, чтобы захватить все, что передано на сервер, и сбросить его в файл базы данных / плоский файл?
Я даже пытался отслеживать /var/logs/http/access_log на сервере Linux, но он мало что показал
Итак, как я могу увидеть, что делает скрипт CURL, именно так, как его видит сервер?
2 ответа
Что вы можете попробовать это
echo htmlentities(file_get_contents('http://intranet/capture.php'));
Я не уверен, что это то, что вы имеете в виду, но он делает то же самое, что и curl (вроде)
Вы хотите увидеть вывод curl
$ch = curl_init(); // initialize curl handle
curl_setopt($ch, CURLOPT_URL, $url ); // set url to post to
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);// allow redirects
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable
curl_setopt($ch, CURLOPT_TIMEOUT, 3); // times out after 4s
curl_setopt($ch, CURLOPT_POST, 1); // set POST method
$result = curl_exec($ch); // run the whole process
curl_close($ch);
echo htmlentities($result);
Я надеюсь, что это то, что вы имеете в виду
В этом случае вы являетесь клиентом, а сервер провайдера является сервером.
Предполагая, что вы запускаете команду curl с клиента, все, что вы можете получить, - это то, что сказал Роберт Кабри.
Если вы пытаетесь посмотреть, что получает сервер, вам нужно иметь соответствующий доступ, а также знать, какой стек приложений работает на сервере для обработки вашего запроса.