2016-09-15 5 views
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 
+0

APIキー変数を宣言していますが、使用していません。 – jedifans

+0

'localhost:8080'? – RamRaider

+0

localhost:8080は正しいです(これは私のBugzillaがポート8080で動作するように設定されているので問題ありません)。私はブラウザから呼び出すことができ、すべてがOKで、私はAPIキーを使用していない、私はちょうどそれを宣言した(私はちょうど実験していた)。私がウェブ上で見た例は、APIキーを必要とせず、ユーザー名とパスワードだけで十分です。コメントありがとう – user1468768

答えて

0

次のコードは私の問題を解決しました。私はwritten a blog on itを持っています。これは、同じ問題に遭遇した他の人には役に立ちます。

 <?php 

     $url = 'http://localhost:8080//bugzilla/xmlrpc.cgi'; 
     $ch = curl_init(); 

     $header = array(
      CURLOPT_URL  => $url, 
      CURLOPT_POST => true, 
      CURLOPT_RETURNTRANSFER => true, 
      CURLOPT_HTTPHEADER => array('Content-Type: text/xml', 'charset=utf-8') 
     ); 
     curl_setopt_array($ch, $header); 

     $bugreport = array(
      'login'  => '[email protected]', 
      'password' => 'abbincrc', 
      'product'  => "TestProduct", 
      'component' => "TestComponent", 
      'summary'  => "Bug Title : A One Line Summary", 
      'assigned_to' => "[email protected]", 
      'version'  => "unspecified", 
      'description' => "Bug Description : A Detailed Problem Description", 
      'op_sys'  => "All", 
      'platform' => "All", 
      'priority' => "Normal", 
      'severity' => "Trivial" 
     ); 

     $request = xmlrpc_encode_request("Bug.create", $bugreport); 
     curl_setopt($ch, CURLOPT_POSTFIELDS, $request); 
     curl_exec($ch) 

    ?> 
関連する問題