2

我正在编写一些脚本来从 JIRA 问题中下载附件。作为概念验证,我使用 cURL(在 Windows 机器上通过 Cygwin 64 位)浏览了 JIRA API,并能够使用以下 cURL 命令验证和检索问题的完整表示(JSON 格式):

curl -u username:password -k -X GET https://jira.localhost.com/jira/rest/api/2/issue/{issuekey}

但是,一旦我开始在 python 中编写脚本(使用 requests 模块),相同的请求将不再通过

import requests
from requests.auth import HTTPBasicAuth

r = requests.get("https://jira.wgt.com/jira/rest/api/2/issue/{issueKey}", auth = HTTPBasicAuth(username, password), verify = False)
print response.status_code
print response.text

打印:

404

{"errorMessages":["Issue Does Not Exist"],"errors":{}}

使用 Charles,我还可以看到服务器返回了 301 错误(可能来自将 https 重定向到 http?)。也许请求无法正确处理重定向?关于如何处理这个问题的任何意见都会很棒

4

1 回答 1

5

对我来说,下一个代码工作得很好:

import requests
url = "http://localhost:8080/jira/rest/api/2/issue/TEST-1"
r = requests.get(url, auth=("admin", "admin"))
print r.status_code
print r.json()

希望这也能解决您的问题。另外,检查您的 JIRA 设置 - 当您安装 JIRA 时,您指定了您的主页。就我而言http://localhost:8080/jira,当我尝试使用一些 Attlassian 示例并使用http://localhost:8080/rest/api/v2/issue/issue它时,它也对我不起作用。这base_url是在您的 JIRA 属性文件中指定的。

于 2015-05-27T07:16:34.263 回答