无法通过REST API HTTPS URL连接到JIRA Python

0 投票
2 回答
3181 浏览
提问于 2025-04-17 16:02

我尝试通过https连接到一个jira开发沙箱,但出现了一个错误,提示SSL23_GET_SERVER_HELLO:未知协议错误。

这是错误日志/堆栈跟踪。我尝试了8080和443这两个端口,但都没有成功。

>>> from jira.client import JIRA


>>> options = {'server':'localhost:8080'}

>>> auth = ('username', 'password')
>>> jira = JIRA(options, auth)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/ve/lib/python2.6/site-packages/jira/client.py", line 88, in __init__
    self._create_http_basic_session(*basic_auth)
  File "/home/ve/lib/python2.6/site-packages/jira/client.py", line 1369, in _create_http_basic_session
    r = self._session.post(url, data=json.dumps(payload))
  File "/home/ve/lib/python2.6/site-packages/requests/sessions.py", line 284, in post
    return self.request('post', url, data=data, **kwargs)
  File "/home/ve/lib/python2.6/site-packages/requests/sessions.py", line 241, in request
    r.send(prefetch=prefetch)
  File "/home/ve/lib/python2.6/site-packages/requests/models.py", line 638, in send
    raise SSLError(e)
requests.exceptions.SSLError: [Errno 1] _ssl.c:480: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol

>>> options = {'server':'localhost:443'}

>>> auth = ('username', 'password')
>>> jira = JIRA(options, auth)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/ve/lib/python2.6/site-packages/jira/client.py", line 88, in __init__
    self._create_http_basic_session(*basic_auth)
  File "/home/ve/lib/python2.6/site-packages/jira/client.py", line 1369, in _create_http_basic_session
    r = self._session.post(url, data=json.dumps(payload))
  File "/home/ve/lib/python2.6/site-packages/requests/sessions.py", line 284, in post
    return self.request('post', url, data=data, **kwargs)
  File "/home/ve/lib/python2.6/site-packages/requests/sessions.py", line 241, in request
    r.send(prefetch=prefetch)
  File "/home/ve/lib/python2.6/site-packages/requests/models.py", line 631, in send
    raise ConnectionError(sockerr)
requests.exceptions.ConnectionError: [Errno 110] Connection timed out
>>> 

2 个回答

2

试试这个:

from jira.client import JIRA
options = {'server':'localhost:8080'}
jira = JIRA(options)
jira = JIRA(basic_auth=('username', 'password')) 

如果这样还不行,有没有可能是因为OpenSSL的冲突呢?

当curl链接的是OpenSSL 0.9.8版本,而它试图连接一个运行OpenSSL 1.0.0版本的服务器时,SSL握手会失败,出现以下错误: curl: (35) error:14077458:SSL routines:SSL23_GET_SERVER_HELLO:reason(1112)

0

明白了。端口8080已经设置好了,它并不是http连接的默认端口。而对于https连接,我使用了一种验证操作,基本上就是在jira-python的方法中把验证设置为False。

撰写回答