我正在尝试使用以下 PHP 代码向 Microsoft Dynamics NAV 2016 中的 Odata Web 服务发送基本 HTTP 请求:
$url = 'https://<Server>:<WebServicePort>/<ServerInstance>/OData/Company(\'<CompanyName>\')/customer(\'1\')';
$credentials = 'user:password';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERPWD, $credentials);
curl_setopt($ch, CURLOPT_POST, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Accept: application/json',
'Content-Type: application/json'
]);
$output = curl_exec($ch);
curl_close($ch);
echo $output;
此代码在我执行时返回预期结果localhost
。
但是,当我在服务器上执行相同的代码时,浏览器会一直等待响应,直到超时。
我还尝试使用HTTPful 库:
$url = 'https://<Server>:<WebServicePort>/<ServerInstance>/OData/Company(\'<CompanyName>\')/customer(\'1\')';
$response = \Httpful\Request::get($url)
->sendsJson()
->authenticateWith('user', 'password')
->addHeaders([
'Accept' => 'application/json',
'Content-Type' => 'application/json'
])->send();
echo json_encode($response->body, JSON_PRETTY_PRINT);
结果是一样的。
和服务器都localhost
使用 PHP5.5 并启用了 cURL,并向例如发送 GET 请求。http://en.gravatar.com/johnslegers.json在服务器上工作得很好。
知道什么可能导致这个和/或如何解决它吗?