Промучавшись с cUrl весь вечер и часть утра, нашел статью на Хабре:
habrahabr.ru/post/48726
Сделал все при помощи file_get_contents.
$url = 'http://site.ru/api/';
$xml = '<request><tag>1</tag></request>';
$username = 'user';
$password = '12345';
$opts = array('http' =>
array(
'method' => 'GET',
'header' => "Content-Type: text/xml\r\n"
. "Authorization: Basic ".base64_encode("$username:$password")."\r\n",
'content' => $xml,
'timeout' => 60
)
);
$context = stream_context_create($opts);
$result = file_get_contents($url, false, $context, -1, 40000);
Уже после того, как все заработало, наткнулся на
HTTPFUL, и
guzzle, обе библиотеки довольно мощные, httpful - попроще.