|
7 | 7 | # Changes may cause incorrect behavior and will be lost if the code is regenerated.
|
8 | 8 | # --------------------------------------------------------------------------
|
9 | 9 | from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, overload
|
10 |
| -from urllib.parse import parse_qs, urljoin, urlparse |
| 10 | +import urllib.parse |
11 | 11 |
|
12 | 12 | from azure.core.async_paging import AsyncItemPaged, AsyncList
|
13 | 13 | from azure.core.exceptions import (
|
@@ -101,10 +101,17 @@ def prepare_request(next_link=None):
|
101 | 101 |
|
102 | 102 | else:
|
103 | 103 | # make call to next link with the client's api-version
|
104 |
| - _parsed_next_link = urlparse(next_link) |
105 |
| - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) |
| 104 | + _parsed_next_link = urllib.parse.urlparse(next_link) |
| 105 | + _next_request_params = case_insensitive_dict( |
| 106 | + { |
| 107 | + key: [urllib.parse.quote(v) for v in value] |
| 108 | + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() |
| 109 | + } |
| 110 | + ) |
106 | 111 | _next_request_params["api-version"] = self._config.api_version
|
107 |
| - request = HttpRequest("GET", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) |
| 112 | + request = HttpRequest( |
| 113 | + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params |
| 114 | + ) |
108 | 115 | request = _convert_request(request)
|
109 | 116 | request.url = self._client.format_url(request.url) # type: ignore
|
110 | 117 | request.method = "GET"
|
@@ -294,10 +301,17 @@ def prepare_request(next_link=None):
|
294 | 301 |
|
295 | 302 | else:
|
296 | 303 | # make call to next link with the client's api-version
|
297 |
| - _parsed_next_link = urlparse(next_link) |
298 |
| - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) |
| 304 | + _parsed_next_link = urllib.parse.urlparse(next_link) |
| 305 | + _next_request_params = case_insensitive_dict( |
| 306 | + { |
| 307 | + key: [urllib.parse.quote(v) for v in value] |
| 308 | + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() |
| 309 | + } |
| 310 | + ) |
299 | 311 | _next_request_params["api-version"] = self._config.api_version
|
300 |
| - request = HttpRequest("GET", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) |
| 312 | + request = HttpRequest( |
| 313 | + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params |
| 314 | + ) |
301 | 315 | request = _convert_request(request)
|
302 | 316 | request.url = self._client.format_url(request.url) # type: ignore
|
303 | 317 | request.method = "GET"
|
|
0 commit comments