Я пытаюсь получить данные от веб-службы 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;
Есть ли ошибки с этим кодом?
Спасибо за вашу помощь
В вашем коде нет ошибок, он успешно подключается к внешнему серверу через cURL и получает данные.
Значение в $ output (если вы делаете var_dump) true
(вот почему вы видите 1
если вы повторяете это).
Сказал, что проблема на сервере, с которым вы связываетесь (103.7.1.182:14048).
Вам, вероятно, нужно отправить некоторые данные или что-то, я не могу сказать вам точно, что, потому что я не знаю, что находится на этом сервере.
Чтобы отправить данные, вы можете добавить curl_setopt
линия:
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
Где $ data это массив.
Других решений пока нет …