2017-06-13 12 views
1

PHPでHP ALM APIを使用している人はいますか?HP ALM APIへのクッキーとセッションIDの送信

私はqcbin/API /認証からクッキーを取得しています、私は他の後続のAPIにこれらのクッキーを送信しようとしていますとき/ API

に署名する。しかし、そのは私httpcode認証されていない401を返します。

また、qcbin/authentication-point/authenticate APIとqcbin/api/site-session APIを使用してセッションを取得および維持しています。次のように

私のコードは次のとおりです。

$のURL = "https://myhost/qcbin/api/authentication/sign-in"。 $ credentials = $ user ':' $パスワード; $ headers = array( "GET /HTTP/1.1","Authorization:Basic"。base64_encode($ credentials));

curl_setopt($qc, CURLOPT_URL, $url); 
curl_setopt($qc, CURLOPT_HTTPGET,1); 
curl_setopt($qc, CURLOPT_HTTPHEADER, $headers); 
curl_setopt($qc, CURLOPT_COOKIEJAR, $ckfile); 
curl_setopt($qc, CURLOPT_RETURNTRANSFER, true); 
$result = curl_exec($qc); 
$response = curl_getinfo($qc); 

は、それから私は、テスト・セット・フォルダを取得しようとしています:

$ FOLDER_NAME = "フォルダ名"; $ safe_name = rawurlencode($ folder_name); $ url = "https://myhost/qcbin/rest/domains/NETWORKS_QUALITY/projects/NETWORKS/test-set-folders?query= {name ['"。 $ safe_name。 "']}";

$qc = curl_init(); 
curl_setopt($qc, CURLOPT_URL, $url); 

//curl_setopt($qc, CURLOPT_HTTPHEADER, $headers); 

curl_setopt($qc, CURLOPT_RETURNTRANSFER, TRUE); 
curl_setopt($qc, CURLOPT_COOKIESESSION, TRUE); 
curl_setopt($qc, CURLOPT_COOKIE,$ckfile); 
curl_setopt($qc, CURLOPT_COOKIEFILE, $ckfile); 


curl_setopt($qc, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($qc, CURLOPT_VERBOSE, true);  

$result = curl_exec($qc); 
$response = curl_getinfo($qc); 

this response returns me httpcode 401 instead of 200. Please help me if anybody worked on this before. 

クエリを理解しようと Biswajitイエナ

答えて

0

ありがとう....あなたは、認証から戻って200人の成功を得ていますか?

私はREST-APIを "要求"と呼ばれるPythonモジュールで使用しています。 REST APIライブラリを見ている場合は、ヘッダのクッキーを返信する必要があります:-)自動化では、毎回ヘッダー(クッキー)を見て、それを使って返信してください。

QC ALMの一部のバージョンでは/HTTP/1.1も必要ありません。さらにヘッダーには、xmlやjsonファイル形式などを送信する場合のように、追加のパラメーターを指定する必要があります。

Content-Type":"application/xml", 
"KeepAlive":"true", 
"Authorization":"Basic ", 
"QCSession" : None, 
"Cookie": None 

QC ALMライブラリを見ているが、私はあまりにも多くを助けることができない私はPHPで残念ながらあなたのポイント:-)を持っている願っていますが、私は、サーバーに送信され、適切なヘッダを見ることはできませんしてください。

+0

ありがとうあなたのマルコをありがとうございます。はい、私は認証APIから200を得ています。あなたのコメントによると、私はヘッダーのクッキーを送信する必要があります。私はヘッダーにもクッキーを送信しようとしましたが、うまくいきませんでした。 – Biswajit

+0

例えば、私の要求は次のようになります:mySession.get(url、data = xml_data、header = my_header)。ほとんどの場合、あなたのケースでは、カールアクションの使用法によってヘッダーを送信する方法を確認する必要があります。 –

+0

重要なヘッダを使用していない最初のメッセージであるため、認証処理中はLSSO-Cookieを使用する必要があります。 –

0

はい、私は解決策を得ました。 CURL呼び出しに渡す必要なCURLオプションのみ。

私は以下のオプションだけを入れて、http_codeを200とデータとして返しました。不要なCURLオプションを書く必要はありません。

curl_setopt($qc, CURLOPT_URL, $url); 
curl_setopt($qc, CURLOPT_COOKIEFILE, $ckfile); 
curl_setopt($qc, CURLOPT_RETURNTRANSFER, true); 

+0

本当に良い:-)あなたはいつも次のクエリに入るためにクッキーオプションを使用しなければなりません。楽しい一日を過ごして、質問を閉じてください;) –

関連する問題