Я пишу тестовый комплект, чтобы помочь в тестировании метода в классе PHP, который у меня есть. По сути, этот метод отправляет данные XML в виде запроса POST к LinkedIn API , поэтому в целях тестирования мой тестовый инструмент будет выступать в качестве фиктивной конечной точки API-интерфейса LinkedIn, получая опубликованные данные и возвращая различные ответы, чтобы увидеть, как метод обрабатывает их.
Итак, метод использует cUrl для отправки данных следующим образом:
$handle = curl_init()
curl_setopt($handle, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($handle, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($handle, CURLOPT_URL, 'http://localhost/target.php');
curl_setopt($handle, CURLOPT_VERBOSE, FALSE);
$header[] = 'Content-Type: text/xml; charset=UTF-8';
curl_setopt($handle, CURLOPT_HTTPHEADER, $header);
$data = '<?xml version="1.0" encoding="UTF-8"?>
<activity locale="en_US">
<content-type>linkedin-html</content-type>
<body>Network update</body>
</activity>';
curl_setopt($handle, CURLOPT_POSTFIELDS, $data);
$response = curl_exec($handle);
Теперь в моем сценарии target.php я хотел бы получить доступ к данным POST ... но при отправке парных данных, отличных от key = value, $ _POST всегда пусто. Если я опускаю пользовательский заголовок и заменяю $data
на $data = 'key=value'
, $_POST['key']
содержит value
. Помните, что этот метод работает с точки зрения отправки данных XML, как указано выше, и ответа API LinkedIn.
Итак, есть ли какие-нибудь указатели о том, как получить доступ к данным POST, отправляемым в формате пары неключевых значений и, возможно, к пользовательскому типу заголовка?