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



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

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

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

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

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

其中$data是一个数组。

最新更新