У меня есть URL, который содержит всю информацию в URL (имя пользователя / пароль / содержание и т. Д.)
Если я захожу на URL в моем браузере, я получаю успешный ответ.
Однако еслиЯ захожу на URL через curl, я получаю 401.
На URL нет аутентификации.
Что может быть причиной этого?
Код:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://mconnect.co.nz/v1/sendmessage?appname=app&pass=pass&msgclass=test&msgid=6&body=Some+Content&to=02712345678');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, $mconnect[$index]['app_name'] . ":" . $mconnect[$index]['app_pass']);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.12 (KHTML, like Gecko) Chrome/9.0.587.0 Safari/534.12');
curl_setopt($ch, CURLOPT_FAILONERROR, true);
curl_setopt($ch, CURLOPT_HTTPGET, true);
curl_setopt($ch, CURLOPT_POST, false);
if(curl_exec($ch) === false)
echo 'fail: '.curl_error($ch);
Обновление ... Странно ...
Итак,
Я строю свой URL через $ mconnect [$ index] ['url'].'?',http_build_query ($ url);
, который дает мне вышеуказанный URL.
Итак,
Если у меня есть
$url = $mconnect[$index]['url'] . '?' . http_build_query($url);
curl_setopt($ch, CURLOPT_URL, $url);
, я получаю 401.
Но,
Если я тогда сделаю echo $mconnect[$index]['url'] . '?' . http_build_query($url);
Я получу
http://mconnect.co.nz/v1/sendmessage?appname=app&pass=pass&msgclass=test&msgid=6&body=Some+Content&to=02712345678
так что если я тогда сделаю
$url = 'http://mconnect.co.nz/v1/sendmessage?appname=app&pass=pass&msgclass=test&msgid=6&body=Some+Content&to=02712345678';
curl_setopt($ch, CURLOPT_URL, $url);
тогда это сработает ...
есть идеи?