Простой HTTP-запрос к веб-сервису Odata прекрасно работает на локальном хосте, но не работает на сервере

Я пытаюсь отправить базовый HTTP-запрос в веб-службу Odata в Microsoft Dynamics NAV 2016, используя следующий код PHP:

$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 отлично работает на сервере.

Любая идея, что может вызвать это и / или как это исправить?

0

Решение

Я обнаружил причину проблемы:

  • Веб-служба Odata в Microsoft Dynamics NAV 2016 использует порт 1103
  • Порты 80, 443, 25 и 110 являются единственными открытыми портами на сервере, с которых я пытаюсь вызвать службу

Наш провайдер Microsoft Dynamics не может изменить порт, который они используют, и наш провайдер веб-хостинга не может открыть этот порт для нас.

После обсуждения с моим начальником мы договорились о переносе нашего веб-хостинга на другого провайдера, который дает нам больше гибкости и не блокирует порт 1103.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]