0
GET要求は機能しますが、POSTおよびPUT要求で認証に関連する問題があります。 「Bugzillaのこの部分を使用する前にログインする必要があります」というエラーが表示されます。私は正しいユーザー名とパスワードを提供しました。私はCURLAUTH_ANYとCURLAUTH_BASICを試しました。私はPUTとPOSTの両方のリクエストを試しました。どんな助けもありがとうございます。Bugzillaのこの部分を使用する前にログインする必要があります。コード:410
$url ="http://localhost:8080/bugzilla/rest/bug/2";
$apikey = "IZC4rs2gstCal0jEZosFjDBRV9AQv2gF0udh4hgq";
$data = array(
"product" => "TestProduct",
"component" => "TestComponent",
"version" => "unspecified",
"summary" => "This is a test bug - please disregard",
"alias" => "SomeAlias",
"op_sys" => "All",
"priority" => "P1",
"rep_platform" => "All"
);
$str_data = json_encode($data);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS,$str_data);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER,
array("Content-Type: application/json", "Accept: application/json"));
$username = '[email protected]';
$password = 'abbincrc';
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
$result = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
echo $result
APIキー変数を宣言していますが、使用していません。 – jedifans
'localhost:8080'? – RamRaider
localhost:8080は正しいです(これは私のBugzillaがポート8080で動作するように設定されているので問題ありません)。私はブラウザから呼び出すことができ、すべてがOKで、私はAPIキーを使用していない、私はちょうどそれを宣言した(私はちょうど実験していた)。私がウェブ上で見た例は、APIキーを必要とせず、ユーザー名とパスワードだけで十分です。コメントありがとう – user1468768