Я хочу отправить данные по URL-адресу, используя базовую аутентификацию в соответствии с RFC2617.

$header = base64_encode("testindia01@test.com:india123");

 curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: text/plain', 'Authorization: Basic '.$header));

Что еще мне нужно сделать здесь, я передаю ':' разделенное имя пользователя и пароль, используя кодировку base64?

Я получаю ответ 401, который является несанкционированным, поскольку мои имя пользователя и пароль действительны, и я могу войти, используя их.

Благодарность

1
devel 4 Мар 2011 в 12:19

1 ответ

Вместо того, чтобы вручную вводить заголовок Authentication, используйте CURL_USERPWD и параметр CURLOPT_HTTPAUTH=>CURLAUTH_BASIC.

http://php.net/manual/en/function.curl-setopt.php#98164

2
Asaph 2 Май 2013 в 22:08
Спасибо, @mario, я использовал тот же код, но все равно получаю ту же ошибку статус 401.
 – 
devel
4 Мар 2011 в 13:15
2
$ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC ) ; curl_setopt($ch, CURLOPT_USERPWD, "testindia01@test.com:india123"); curl_setopt($ch, CURLOPT_SSLVERSION,3); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_NOBODY, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); curl_setopt($ch, CURLOPT_URL, $submit_url);
 – 
devel
4 Мар 2011 в 13:19
@devel: Вам следует исключить SSL, попробуйте только первые две строки. В противном случае используйте сетевой сниффер для отладки того, что на самом деле отправил cURL. (Возможно, это устаревшая версия.)
 – 
mario
4 Мар 2011 в 13:20