blackducksoftware / hub-rest-api-python

HUB REST API Python bindings
Apache License 2.0
89 stars 104 forks source link

Upload scan - UnicodeEncodeError #185

Closed Coulicoula closed 3 years ago

Coulicoula commented 3 years ago

Traceback:

File "my/path/upload_scan.py", line 11, in hub.upload_scan(filename=str(f)) File "/root/.local/lib/python3.9/site-packages/blackduck/Scans.py", line 15, in upload_scan response = requests.post(url, headers=headers, data=f, verify=not self.config['insecure']) File "/root/.local/lib/python3.9/site-packages/requests/api.py", line 119, in post return request('post', url, data=data, json=json, kwargs) File "/root/.local/lib/python3.9/site-packages/requests/api.py", line 61, in request return session.request(method=method, url=url, kwargs) File "/root/.local/lib/python3.9/site-packages/requests/sessions.py", line 542, in request resp = self.send(prep, send_kwargs) File "/root/.local/lib/python3.9/site-packages/requests/sessions.py", line 655, in send r = adapter.send(request, kwargs) File "/root/.local/lib/python3.9/site-packages/requests/adapters.py", line 439, in send resp = conn.urlopen( File "/root/.local/lib/python3.9/site-packages/urllib3/connectionpool.py", line 699, in urlopen httplib_response = self._make_request( File "/root/.local/lib/python3.9/site-packages/urllib3/connectionpool.py", line 394, in _make_request conn.request(method, url, **httplib_request_kw) File "/root/.local/lib/python3.9/site-packages/urllib3/connection.py", line 234, in request super(HTTPConnection, self).request(method, url, body=body, headers=headers) File "/usr/local/lib/python3.9/http/client.py", line 1253, in request self._send_request(method, url, body, headers, encode_chunked) File "/usr/local/lib/python3.9/http/client.py", line 1299, in _send_request self.endheaders(body, encode_chunked=encode_chunked) File "/usr/local/lib/python3.9/http/client.py", line 1248, in endheaders self._send_output(message_body, encode_chunked=encode_chunked) File "/usr/local/lib/python3.9/http/client.py", line 1037, in _send_output for chunk in chunks: File "/usr/local/lib/python3.9/http/client.py", line 996, in _read_readable datablock = datablock.encode("iso-8859-1") UnicodeEncodeError: 'latin-1' codec can't encode characters in position 7619-7620: ordinal not in range(256)

Filename was output/runs/2021-07-08-13-10-48-825/scan/BlackDuckScanOutput/2021-07-08_13-10-49-788_1/data/runner-7ydpvkq4-project-17242-concurrent-0cm5zn-my-project-2021-07-08T131051.618Z.json

By modifying L14 of https://github.com/blackducksoftware/hub-rest-api-python/blob/master/blackduck/Scans.py, it worked FROM with open(filename,"r") as f: TO with open(filename,"rb") as f:

OffBy0x01 commented 3 years ago

Hey @Coulicoula, perhaps you could create a PR for your fix?

Coulicoula commented 3 years ago

Sure:

187

OffBy0x01 commented 3 years ago

Fixed by #187