cUrl、PHP和a访问特定的头类型

cUrl、PHP和a访问特定的头类型,php,unit-testing,curl,Php,Unit Testing,Curl,我正在编写一个测试工具,以帮助在我拥有的PHP类中测试一个方法。本质上,该方法将XML数据作为POST请求发送到,因此出于测试目的,我的测试工具将充当模拟LinkedIn API端点,获取发布的数据并返回各种响应,以查看该方法如何处理它们 因此,该方法使用cUrl发送数据,如下所示: $handle = curl_init() curl_setopt($handle, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($handle, CURLOPT_RE

我正在编写一个测试工具,以帮助在我拥有的PHP类中测试一个方法。本质上,该方法将XML数据作为POST请求发送到,因此出于测试目的,我的测试工具将充当模拟LinkedIn API端点,获取发布的数据并返回各种响应,以查看该方法如何处理它们

因此,该方法使用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);
$handle=curl\u 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[]='内容类型:text/xml;字符集=UTF-8';
curl_setopt($handle,CURLOPT_HTTPHEADER,$header);
$data=
linkedin html
网络更新
';
curl_setopt($handle,CURLOPT_POSTFIELDS,$data);
$response=curl\u exec($handle);
现在,在我的target.php脚本中,我想访问发布的数据。。。但在发送非key=value配对数据时,$\u POST始终为空。如果我省略自定义标题并将
$data
替换为
$data='key=value'
$\u POST['key']
包含
value
。请记住,此方法在如上所述发送XML数据和LinkedIn API响应方面起作用


因此,任何关于如何访问以非键值对格式发送且可能是自定义标题类型的已发布数据的指针都称为原始发布数据:

$xml = $HTTP_RAW_POST_DATA;

它被称为原始post数据:

$xml = $HTTP_RAW_POST_DATA;

看来正确的解决方案是通过以下方式访问原始POST数据:

<?php $postdata = file_get_contents("php://input"); ?>


Per

看来正确的解决方案是通过以下方式访问原始POST数据:

<?php $postdata = file_get_contents("php://input"); ?>


Per

我想我可能已经找到了答案:
php://input
。每。如果不是这样的话,欢迎任何其他反馈,但通过
php://input
而且它似乎像预期的那样工作。我想我可能已经找到了答案:
php://input
。每。如果不是这样的话,欢迎任何其他反馈,但通过
php://input
而且它似乎按照预期工作。