Как получить доступ к данным, созданным веб-сервисом Nav, в HTML-макет с помощью PHP - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь получить данные, созданные веб-сервисом navision. Когда я получаю прямой доступ к URL-адресу, указанному в браузере Chrome, на странице запрашиваются имя пользователя и пароль, а затем Chrome отображает данные XML, как и ожидалось.

Но когда я использую скрипт PHP, он всегда возвращает «1».

Мой код выглядит так:

$url = 'http://103.7.1.182:14048/DynamicsNAV71-6/OData/Company(\'Unit%20G%205\')/Item_Master_on_hand_no_Desc';
$login = 'Gem-gae\senzo1:Bsbsenzo2018';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERPWD, $login);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
      'Content-Type:application/x-www-form-urlencoded',                                                                                
      'Content-Length: ' . strlen(1))                                                                       
  );
$output = curl_exec($ch);
curl_close($ch);
echo $output; 

Есть ли ошибки в этом коде? Спасибо за вашу помощь

1 Ответ

0 голосов
/ 29 августа 2018

В вашем коде нет ошибки, он успешно подключается к внешнему серверу через cURL и получает данные. Значение в $ output (если вы делаете var_dump) равно true (поэтому вы видите 1, если вы его отображаете).

Сказал, что проблема на сервере, с которым вы связываетесь (103.7.1.182:14048). Вам, вероятно, нужно отправить некоторые данные или что-то, я не могу сказать вам точно, что, потому что я не знаю, что находится на этом сервере. Для отправки данных вы можете добавить строку curl_setopt:

curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));

Где $ data - массив.

...