这是我第一次从网络服务中获取回报。我期待的是'授权失败'的效果。 URL在我们的测试环境中是一个,并且发送的XML是正确的,但我没有收到回复,也不知道我做错了什么。
服务是REST,标头必须传递编码授权(此示例是正确的),内容类型设置为xml。
当我使用相同的参数在Chrome中的Advanced Rest Client中对其进行测试时,它会连接并给我回复。
此外,如果有更好的方法来创建XML,我就是为了这一切 - 这只是我发现并开始的一个例子。代码如下
<?php
if (!isset($_POST['firstname'])) {
?>
<form name="ppost" method="post" action="<?=$_SERVER['PHP_SELF']?>">
<input type="text" name="firstname" />
<input type="submit" name="SUbmit" value="Submit" />
</form>
<?php
} // end if, form not posted
else {
extract($_POST);
$inputdata = '
<ReqGetWebUserInfo>
<OrgId>598</OrgId>
<OrgUnitId>598</OrgUnitId>
<MasterCustomerId>'.$firstname.'</MasterCustomerId>
<SubCustomerId>0</SubCustomerId>
</ReqGetWebUserInfo>';
echo '<pre>'.$inputdata.'</pre>';
$url = "https://gsusacustom.ebiz.uapps.net/GSUSARestWebService/PersonifyWcfSvc.svc/GetWebUserInfo";
$headers = array(
'Authorization: Basic dG1hc2d1bmRhbTpwYXNzd29yZDE=',
'Content-Type: application/xml;charset=utf-8',
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url ); // THE URL TO FETCH - CAN ALSO BE SET IN THE CURL_INIT
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_HEADER, 0); // DON'T INLCUDE HEADER IN THE OUTPUT
curl_setopt($ch, CURLOPT_POST, 1); // TRUE FOR A REGULAR HTTP POST
curl_setopt($ch, CURLOPT_POSTFIELDS, $inputdata); // THE DATA POST FROM THE FORM
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close ($ch);
print $response;
} // end else, form submitted and processed
?>
提前致谢。
答案 0 :(得分:0)
我的猜测是你没有处理https
连接。试试这个选项:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
如果错误仍然存在,请执行以下操作以进行更多操作。
运行代码并启用所有错误报告:
error_reporting(E_ALL);
使用启用调试选项运行curl:
curl_setopt($ch, CURLOPT_VERBOSE, 1);