web-dev-qa-db-ja.com

PHP curlで基本認証を使用する方法

基本認証でPHP curlリクエストに問題があります。

コマンドラインcurlは次のとおりです。

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

私は次の方法でカールヘッダーを設定してみましたが、うまくいきません

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

「リクエストの認証パラメータが見つからないか無効です」という応答を受け取りましたが、コマンドラインcurlで動作している適切なidとapi_keyを使用しました(テストしました)

私を助けてください。

47
Al Amin

次のコードを試してください:

$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);
125
Suhel Meman

これを試してもらえますか、

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

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

7
Krish R