async def _request(self, method, path, websocket=False, authenticate=True,
body=None, body_producer=None, on_message_callback=None, **kwargs):
headers = {}
+ query_args = {}
# Make absolute URL
url = urllib.parse.urljoin(self.url, path)
if websocket and url.startswith("https://"):
url = url.replace("https://", "wss://")
- # Convert any query arguments
- query_args = urllib.parse.urlencode(kwargs)
+ # Filter all query arguments
+ for arg in kwargs:
+ # Skip anything that is None
+ if kwargs[arg] is None:
+ continue
+
+ # Add to query arguments
+ query_args[arg] = kwargs[arg]
+
+ # Encode query arguments
+ query_args = urllib.parse.urlencode(query_args, doseq=True)
# Add query arguments
if method in ("GET", "PUT", "DELETE"):