Soru PHP curl'de temel yetkilendirme nasıl kullanılır


Temel yetkilendirme ile PHP curl isteği ile sorun yaşıyorum.

İşte komut satırı curl:

curl -H "Accept: application/product+xml" "https://{id}:{api_key}@api.domain.com/products?limit=1&offset=0"

Curl üstbilgisini aşağıdaki yollarla ayarlamayı denedim ama çalışmıyor

Authorization: Basic id:api_key
or 
Authorization: Basic {id}:{api_key}

"İstekte bulunan kimlik doğrulama parametresi eksik veya geçersiz" yanıtını alıyorum ancak komut satırında çalışan uygun bir kimlik ve api_key kullanıyorum (test ettim)

Lütfen bana yardım et.


44
2017-11-19 05:58


Menşei




Cevaplar:


Aşağıdaki kodu deneyin:

$username='ABC';
$password='XYZ';
$URL='<URL>';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$URL);
curl_setopt($ch, CURLOPT_TIMEOUT, 30); //timeout after 30 seconds
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
$result=curl_exec ($ch);
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);   //get status code
curl_close ($ch);

112
2017-11-19 06:05



Güzel! sahiptim curl_setopt($ch, CURLOPT_HTTPAUTH, 'CURLAUTH_BASIC'); ama bu işe yaramadı. Senin kullanılmış CURLAUTH_ANY ve biz altınız! - Joshua Pinter
Ben de CURLOPT_HTTPAUTH satır ve düzgün çalışması. - Joshua Pinter
@JoshPinter, dizeyi kullanıyordun 'CURLAUTH_BASIC' sabit yerine CURLAUTH_BASIC - Walter Tross
Bu benim için çalıştı curl_setopt($ch, CURLOPT_HTTPHEADER, [ "Authorization: Basic ".base64_encode($this->username.":".$this->password), ]); - FosAvance
Curl_getinfo () curl_exec () 'den sonra gelmemeli mi? - Alien Technology


Bunu deneyebilir misin

 $ch = curl_init($url);
 ...
 curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);  
 ...

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


5
2017-11-19 06:01



Bu aslında benim için işe yaradı curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); - Harish Prasanna