0
我試圖發送一個基本的HTTP請求到Microsoft Dynamics NAV 2016年的OData Web服務出現故障時,使用下面的PHP代碼:簡單的HTTP請求的OData web服務工作在本地主機上正常,但在服務器上
$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
上執行時返回預期結果。
但是,當我在服務器上執行相同的代碼時,瀏覽器會一直等待響應,直到超時。
我也使用the HTTPful library嘗試:
$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在服務器上工作得很好。
任何想法可能會導致這種情況和/或如何解決它?
您的非本地主機服務器可以讓任何外界的請求? – Halcyon
@Halcyon:發送一個GET請求給例如。 http://en.gravatar.com/johnslegers.json在服務器上工作得很好。 –
和其他請求odata webserivce? – Halcyon