当我使用邮递员检查状态时,我尝试使用 get 请求获取声纳扫描状态。我得到了预期的输出。但是当我尝试使用 python3.6.3 时。它经历了以下异常
Traceback (most recent call last):
File "C:\Python37\lib\site-packages\urllib3\response.py", line 331, in
_error_catcher
yield
File "C:\Python37\lib\site-packages\urllib3\response.py", line 413, in read
data = self._fp.read(amt)
File "C:\Python37\Lib\http\client.py", line 447, in read
n = self.readinto(b)
File "C:\Python37\Lib\http\client.py", line 491, in readinto
n = self.fp.readinto(b)
File "C:\Python37\Lib\socket.py", line 589, in readinto
return self._sock.recv_into(b)
File "C:\Python37\Lib\ssl.py", line 1049, in recv_into
return self.read(nbytes, buffer)
File "C:\Python37\Lib\ssl.py", line 908, in read
return self._sslobj.read(len, buffer)
ConnectionResetError: [WinError 10054] An existing connection was
forcibly closed by the remote host
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Python37\lib\site-packages\requests\models.py", line 749, in generate
for chunk in self.raw.stream(chunk_size, decode_content=True):
File "C:\Python37\lib\site-packages\urllib3\response.py", line 465, in stream
data = self.read(amt=amt, decode_content=decode_content)
File "C:\Python37\lib\site-packages\urllib3\response.py", line 430, in read
raise IncompleteRead(self._fp_bytes_read, self.length_remaining)
File "C:\Python37\Lib\contextlib.py", line 130, in __exit__
self.gen.throw(type, value, traceback)
File "C:\Python37\lib\site-packages\urllib3\response.py", line 349, in _error_catcher
raise ProtocolError('Connection broken: %r' % e, e)
urllib3.exceptions.ProtocolError: ("Connection broken: ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None)", ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:/Users/vjannapureddy/Documents/testing/testingsonarapi.py", line 11, in <module>
response = requests.request("GET", url, headers=headers, params=querystring)
File "C:\Python37\lib\site-packages\requests\api.py", line 58, in request
return session.request(method=method, url=url, **kwargs)
File "C:\Python37\lib\site-packages\requests\sessions.py", line 512, in request
resp = self.send(prep, **send_kwargs)
File "C:\Python37\lib\site-packages\requests\sessions.py", line 662, in send
r.content
File "C:\Python37\lib\site-packages\requests\models.py", line 827, in content
self._content = b''.join(self.iter_content(CONTENT_CHUNK_SIZE)) or b''
File "C:\Python37\lib\site-packages\requests\models.py", line 752, in generate
raise ChunkedEncodingError(e)
requests.exceptions.ChunkedEncodingError: ("Connection broken:
ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None)", ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))
我尝试使用 python 3.7 运行,但不起作用,然后我在 Linux 环境中尝试使用 python3.6.3 运行,但不起作用。
我们使用的是SonarQube企业版,它有MFA安全验证。
import requests
url = "https://xxxsonarqube.xx.com/api/qualitygates/project_status"
querystring = {"analysisId" : "AWu4CtcA08Z7GjqNo7V6"}
headers = {
'Authorization': "Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
response = requests.request("GET", url, headers=headers,
params=querystring)
print(response.text)
print(response.status_code)
这是预期的输出,并且在使用邮递员时有效。
{
"projectStatus": {
"status": "ERROR",
"conditions": [
{
"status": "OK",
"metricKey": "bugs",
"comparator": "GT",
"errorThreshold": "0",
"actualValue": "0"
},
{
"status": "OK",
"metricKey": "vulnerabilities",
"comparator": "GT",
"errorThreshold": "0",
"actualValue": "0"
},
{
"status": "ERROR",
"metricKey": "code_smells",
"comparator": "GT",
"errorThreshold": "0",
"actualValue": "72"
}
],
"periods": [],
"ignoredConditions": false
}
}
你找到解决办法了吗?我也有类似的问题。