Я пытаюсь извлечь некоторые данные из Microsoft Dynamics CRM 2011 Online, который находится на удаленном хосте; он работает, если я вручную (из браузера) зарегистрировался и выполнил мой с моего сервера, который запускает PHP на хосте Linux, но, конечно, я хочу аутентифицировать и запускать операции CRUD без моего посредничества :).PHP curl talk to Microsoft Dynamics CRM 2011
Но он продолжает показывать мне «Объект переместился сюда». страницы для аутентификации. Если я установил CURLOPT_FOLLOWLOCATION => 1, он отобразит страницу входа в систему crm.
Если кто-нибудь может предложить любую подсказку для урегулирования ситуации ... спасибо!
<?php
$useragent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1";
$urlValue = "/LeadSet?$select=Address1_City,FirstName,LastName";
$username = "domain\user";
$pass = "pass";
$handle = curl_init();
curl_setopt_array($handle,
array (
CURLOPT_USERAGENT => $useragent,
CURLOPT_USERPWD => $username . ':' . $pass,
CURLOPT_HTTPAUTH => CURLAUTH_ANY,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_URL => 'https://myhost.com/xrmservices/2011/OrganizationData.svc',
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $urlValue,
CURLOPT_RETURNTRANSFER => true,
)
);
$response = curl_exec($handle);
curl_close($handle);
header('Content-Type: text/plain;');
print_r($response);
действительно ли он использует * http authentication *? Я предполагаю, что это не так, потому что вы говорите, что оно перенаправляется на форму входа в систему, и, как правило, когда ваш браузер представлен фактической формой входа в html, результирующее состояние входа в систему поддерживается через файлы cookie, а не HTTP-аутентификацию. убедиться. – goat
@chris он не соскабливает. Он использует [Odata REST API для Microsoft Dyanmic CRM 2011] (http://msdn.microsoft.com/en-us/library/gg309461.aspx). Он использует [Обычная проверка подлинности] (http://msdn.microsoft.com/en-us/data/gg192997.aspx). –