如何使用PHP将Nav Web服务生成的odata访问到html布局中

时间:2018-08-29 12:35:41

标签: php odata navision

我尝试获取由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; 

该代码是否有任何错误? 谢谢您的帮助

1 个答案:

答案 0 :(得分:0)

您的代码没有错误,它可以通过cURL成功连接到外部服务器并检索数据。 $ output中的值(如果您执行var_dump)是true(这就是为什么您回显1的原因。)

说,问题出在您正在联系的服务器上(103.7.1.182:14048)。 您可能需要发送一些数据或某些内容,我无法确切告诉您什么,因为我不知道该服务器中的内容。 要发送数据,您可以添加curl_setopt行:

curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));

$ data是一个数组。