Api 从返回空白或零响应的cURL请求读取OData
从上一周开始,我试图解决与Api 从返回空白或零响应的cURL请求读取OData,api,curl,soap,odata,microsoft-dynamics,Api,Curl,Soap,Odata,Microsoft Dynamics,从上一周开始,我试图解决与cURL返回空白响应相关的问题,同时从cURL检索数据。经过长时间的研究,我发现我有授权问题。但在应用了所有与此类问题相关的积极反馈之后。我仍然无法访问这些数据 如果我曾经从浏览器中获取数据:我将获得完美的XML。(我随信附上) 但是,如果我使用cURL或SOAP-API库,我在点击该API后会得到这种空白响应。 请帮助从ODATA的URL获取任何响应 XML URL:(获取原始XML): 以下代码是我用来从这个URL检索的: $baseURL = 'http
cURL
返回空白响应相关的问题,同时从cURL检索数据。经过长时间的研究,我发现我有授权问题。但在应用了所有与此类问题相关的积极反馈之后。我仍然无法访问这些数据如果我曾经从浏览器中获取数据:我将获得完美的
XML
。(我随信附上)但是,如果我使用
cURL
或SOAP-API
库,我在点击该API后会得到这种空白响应。请帮助从
ODATA
的URL获取任何响应XML URL:(获取原始XML):
以下代码是我用来从这个URL检索的:
$baseURL = 'http://139.5.19.140:7048/DynamicsNAV71/OData/Company';
$CompanyName = 'B. Jain Pharma-2017';
$pageURL = $baseURL."('".rawurlencode($CompanyName)."')".'/Mycustomer';
$useragent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1";
$urlValue = "/Page/Mycustomer";
$username = 'pharma0\erpuser';
$pass = 'pass@123';
$handle = curl_init();
curl_setopt_array($handle,
array (
CURLOPT_USERAGENT => $useragent,
CURLOPT_USERPWD => $username . ':' . $pass,
CURLOPT_HTTPAUTH => CURLAUTH_ANY,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_URL => $pageURL,
CURLOPT_POST => 1,
CURLOPT_HTTPHEADER => array(
'Method: GET',
'Connection: Keep-Alive',
'Content-Type: application/atom+xml,application/atomsvc+xml,application/xml;text/html;charset=utf-8',
'Content-Length: 5685',
'SOAPAction: "" ',
),
// CURLOPT_POSTFIELDS => $urlValue,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 180,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_VERBOSE => true,
)
);
$response = curl_exec($handle);
var_dump (curl_error($handle));
curl_close($handle);
var_dump($response);
请帮忙。先谢谢你。你的支持真是值得赞赏。
1)OData允许您通过向url添加
?$format=JSON
来检索JSON中的数据2)检查http错误代码是否为“no content 204”。。。然后是用户代理stringthank@MichaelSchönbauer,感谢您宝贵的回复,但仍然在cURL response中返回零字符串的空白页面。您可以发布回复标题吗?您可以尝试CURLOPT\u HTTPAUTH=>“CURLAUTH\u BASIC”
ANY@MichaelSchönbauer是的,以前我也试过这个CURLOPT\u HTTPAUTH=>“CURLAUTH_BASIC”
但仍然存在相同的问题。您可以尝试删除大多数curlaopt参数吗?curlaopt_HTTPHEADER似乎错误。curlaopt_POST似乎错误(您希望获得)curlaopt_HTTP_版本似乎不相关,curlaopt_RETURN_TRANSFER->尝试删除所有这些参数