我正在尝试使用REST API与IBM Rational Quality Manager服务器进行通信。我正在使用RESTClient浏览器插件,当浏览器登录时,一切都按预期工作。记录一下,我的请求如下:
然而,如果我等待足够长的时间让RQM注销,REST API会提示我需要重新登录才能继续(如下所示)。我相信这可以通过API本身完成,因为RQM附带了RQMUrlUtility,它接受用户名和密码,并运行基本上与我正在使用的REST请求相同的请求:
到目前为止,我已经找到了这个话题,解释了如何使用HTTP基本身份验证登录。遵循这个建议,我已经添加了
https://server/qm/service/com.ibm.rqm.integration.service.IIntegrationService/resources/project/testscript/urn:com.ibm.rqm:testscript:42
然而,如果我等待足够长的时间让RQM注销,REST API会提示我需要重新登录才能继续(如下所示)。我相信这可以通过API本身完成,因为RQM附带了RQMUrlUtility,它接受用户名和密码,并运行基本上与我正在使用的REST请求相同的请求:
java -jar RQMUrlUtility.jar -command GET -user JazzUserID -password JazzPassword -filepath pathtoFile -url REST_URL
到目前为止,我已经找到了这个话题,解释了如何使用HTTP基本身份验证登录。遵循这个建议,我已经添加了
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
(不是我的真实密码)到请求中,但是RQM仍然无法登录。我还尝试将User-Agent
设置为虚假值,并像这里描述的那样,在X-Jazz-CSRF-Prevent
头部中发送JSESSIONID
的值,但无论这些标头是否存在,我都会得到相同的响应:Status Code: 200 OK
Cache-Control: no-cache="set-cookie, set-cookie2"
Connection: Keep-Alive
Content-Encoding: gzip
Content-Language: en-US
Content-Type: text/html; charset=UTF-8
Date: Tue, 26 Jan 2016 15:48:02 GMT
Expires: Thu, 01 Dec 1994 16:00:00 GMT
Keep-Alive: timeout=10, max=100
Set-Cookie: JazzFormAuth=Form; Path=/qm; Secure
x-com-ibm-team-scenario=ac55f959-c738-4ef0-854d-6e37648edcba%3Bname%3DInitial+Page+Load%3Bextras%3D%2Fqm%2Fauth%2Fauthrequired%2C1453823282026; Path=/
Transfer-Encoding: chunked
X-Powered-By: Servlet/3.0
X-com-ibm-team-repository-web-auth-msg: authrequired
有经验的RQM API用户能告诉我哪里出了问题吗?或者我可能漏掉了某些基本的,大多数RESP APIs都具备的东西?