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->尝试删除所有这些参数