簡體   English   中英

將Cookie和會話ID發送到HP ALM API

[英]Sending cookie and session id to HP ALM API

是否有人使用PHP在HP ALM API上工作?

我從qcbin / api / authentication / sign-in API獲取cookie

但是,當我嘗試將這些cookie發送到其他后續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 =“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 Jena

試圖理解你的查詢....你是否從認證中恢復了200的成功?

我正在使用名為“requests”的python模塊的REST-API。 如果您查看REST API庫,您應該在標題中發回cookie :-)在自動化中,您應該每次查看標題(cookie)並使用它來回復它。

某些版本的QC ALM中的/HTTP/1.1甚至不需要。 此外,在標題中,您必須指定其他參數,例如,如果您發送xml或json文件格式,等等。

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

請看看QC ALM庫,但我希望我有你的觀點:-)不幸的是,我不能幫助太多,但我看不到發送到服務器的正確標頭。

是的,我得到了解決方案。 只有所需的CURL選項才能傳遞給任何CURL調用。

所以我只提出以下選項,它還將http_code作為200和數據返回給我。 無需編寫不必要的CURL選項。

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

謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM