2017-09-21 38 views
0

预先感谢您 我试着用卷曲使用获得的OData服务的URL下面的代码OData服务不能完全返回JSON在PHP卷曲

<?php 
$url = "serviceurl/odata.srv/Users?$format=json&$expand=EmployeeDetails/ClientDetails/ClientConfigurationDetails,EmployeeDetails/ClientDetails/LogoDetails,SalutationTexts,UserConfigurationDetails"; 



$ch = curl_init($url); // such as http://example.com/example.xml 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
curl_setopt($ch, CURLOPT_USERPWD, "username:password"); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json', 
'Accept: application/json')); 
curl_setopt($ch, CURLOPT_POST, 0); 
curl_setopt($ch, CURLOPT_HEADER, 0); 

$data = curl_exec($ch); 
curl_close($ch); 

echo $data; 

仅造成用户详细介绍了扩大细节并不存在,但在邮递员并直接在浏览器中调用它的做工精细获得所有细节

回答

1

把它的URL在单引号像下面

$url = 'serviceurl/odata.srv/Users?$format=json&$expand=EmployeeDetails/ClientDetails/ClientConfigurationDetails,EmployeeDetails/ClientDetails/LogoDetails,SalutationTexts,UserConfigurationDetails'; 

WHI le使用双引号php将尝试替换$ format和$ expand变量,这些变量实际上是odata参数而不是php变量。

希望这会有所帮助。

+0

这是我的错误,我忘了在URL中的特殊字符 –