【发布时间】:2014-08-25 05:07:41
【问题描述】:
我正在编写一些脚本来从 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?)。也许请求无法正确处理重定向?任何关于如何处理这个问题的意见都会很棒
【问题讨论】:
-
如果涉及重定向,很可能(如果您使用的是 2.3.0 请求)我们会自动剥离身份验证以确保您的安全。您应该检查 response.history,如果那里有响应,请检查它们的请求标头。同样,您可以检查此响应的标头并查找“授权”。它很可能在来自重定向之一的请求的标头字典中,但不在为最终响应发送的请求中。
标签: python python-2.7 curl python-requests jira-rest-api