fix missing type conversion for --data

The parameter --data is handled as type string, but the method urlopen() only accepts the datatype byte.
Before this fix you will get: "TypeError: POST data should be  bytes, an iterable of bytes, or a filer object. It cannot be of type str."
This PR solves this.
This commit is contained in:
K0nne 2022-07-27 13:30:25 +02:00 committed by GitHub
parent e3ac06864d
commit 428a5a6d3a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -599,13 +599,15 @@ def main(cliargs):
for header in headers: for header in headers:
req.add_header(header, headers[header]) req.add_header(header, headers[header])
if args.timeout and args.data: if args.timeout and args.data:
databytes = str(args.data).encode()
response = urllib.request.urlopen(req, timeout=args.timeout, response = urllib.request.urlopen(req, timeout=args.timeout,
data=args.data, context=context) data=databytes, context=context)
elif args.timeout: elif args.timeout:
response = urllib.request.urlopen(req, timeout=args.timeout, response = urllib.request.urlopen(req, timeout=args.timeout,
context=context) context=context)
elif args.data: elif args.data:
response = urllib.request.urlopen(req, data=args.data, context=context) databytes = str(args.data).encode()
response = urllib.request.urlopen(req, data=databytes, context=context)
else: else:
response = urllib.request.urlopen(req, context=context) response = urllib.request.urlopen(req, context=context)