|
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, cast, 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 (
|
@@ -100,10 +100,17 @@ def prepare_request(next_link=None):
|
100 | 100 |
|
101 | 101 | else:
|
102 | 102 | # make call to next link with the client's api-version
|
103 |
| - _parsed_next_link = urlparse(next_link) |
104 |
| - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) |
| 103 | + _parsed_next_link = urllib.parse.urlparse(next_link) |
| 104 | + _next_request_params = case_insensitive_dict( |
| 105 | + { |
| 106 | + key: [urllib.parse.quote(v) for v in value] |
| 107 | + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() |
| 108 | + } |
| 109 | + ) |
105 | 110 | _next_request_params["api-version"] = self._config.api_version
|
106 |
| - request = HttpRequest("GET", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) |
| 111 | + request = HttpRequest( |
| 112 | + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params |
| 113 | + ) |
107 | 114 | request = _convert_request(request)
|
108 | 115 | request.url = self._client.format_url(request.url) # type: ignore
|
109 | 116 | request.method = "GET"
|
@@ -177,10 +184,17 @@ def prepare_request(next_link=None):
|
177 | 184 |
|
178 | 185 | else:
|
179 | 186 | # make call to next link with the client's api-version
|
180 |
| - _parsed_next_link = urlparse(next_link) |
181 |
| - _next_request_params = case_insensitive_dict(parse_qs(_parsed_next_link.query)) |
| 187 | + _parsed_next_link = urllib.parse.urlparse(next_link) |
| 188 | + _next_request_params = case_insensitive_dict( |
| 189 | + { |
| 190 | + key: [urllib.parse.quote(v) for v in value] |
| 191 | + for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items() |
| 192 | + } |
| 193 | + ) |
182 | 194 | _next_request_params["api-version"] = self._config.api_version
|
183 |
| - request = HttpRequest("GET", urljoin(next_link, _parsed_next_link.path), params=_next_request_params) |
| 195 | + request = HttpRequest( |
| 196 | + "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params |
| 197 | + ) |
184 | 198 | request = _convert_request(request)
|
185 | 199 | request.url = self._client.format_url(request.url) # type: ignore
|
186 | 200 | request.method = "GET"
|
|
0 commit comments