我尝试获取由navision网络服务生成的odata。当我直接访问使用chrome浏览器提供的网址时,页面会要求输入用户名和密码,然后chrome会按预期显示xml数据。
但是当我使用PHP脚本时,它总是返回“ 1”。
我的代码如下:
$url = 'http://103.7.1.182:14048/DynamicsNAV71-6/OData/Company(\'Unit%20G%205\')/Item_Master_on_hand_no_Desc';
$login = 'Gem-gae\senzo1:Bsbsenzo2018';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERPWD, $login);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type:application/x-www-form-urlencoded',
'Content-Length: ' . strlen(1))
);
$output = curl_exec($ch);
curl_close($ch);
echo $output;
该代码是否有任何错误? 谢谢您的帮助
答案 0 :(得分:0)
您的代码没有错误,它可以通过cURL成功连接到外部服务器并检索数据。
$ output中的值(如果您执行var_dump)是true
(这就是为什么您回显1
的原因。)
说,问题出在您正在联系的服务器上(103.7.1.182:14048)。
您可能需要发送一些数据或某些内容,我无法确切告诉您什么,因为我不知道该服务器中的内容。
要发送数据,您可以添加curl_setopt
行:
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$ data是一个数组。