@@ -980,17 +980,7 @@ param as IDictionary<string, string>
980
980
// UriBuilder business so that we preserve any hardcoded query
981
981
// parameters as well as add the parameterized ones.
982
982
var uri = new UriBuilder ( new Uri ( new Uri ( "http://api" ) , urlTarget ) ) ;
983
- var query = HttpUtility . ParseQueryString ( uri . Query ?? "" ) ;
984
- foreach ( var key in query . AllKeys )
985
- {
986
- if ( ! string . IsNullOrWhiteSpace ( key ) )
987
- {
988
- queryParamsToAdd . Insert (
989
- 0 ,
990
- new KeyValuePair < string , string ? > ( key , query [ key ] )
991
- ) ;
992
- }
993
- }
983
+ ParseExistingQueryString ( uri , queryParamsToAdd ) ;
994
984
995
985
if ( queryParamsToAdd . Count != 0 )
996
986
{
@@ -1100,6 +1090,25 @@ var value in ParseEnumerableQueryParameterValue(
1100
1090
}
1101
1091
}
1102
1092
1093
+ static void ParseExistingQueryString ( UriBuilder uri , List < KeyValuePair < string , string ? > > queryParamsToAdd )
1094
+ {
1095
+ if ( string . IsNullOrEmpty ( uri . Query ) )
1096
+ return ;
1097
+
1098
+ var query = HttpUtility . ParseQueryString ( uri . Query ) ;
1099
+ var index = 0 ;
1100
+ foreach ( var key in query . AllKeys )
1101
+ {
1102
+ if ( ! string . IsNullOrWhiteSpace ( key ) )
1103
+ {
1104
+ queryParamsToAdd . Insert (
1105
+ index ++ ,
1106
+ new KeyValuePair < string , string ? > ( key , query [ key ] )
1107
+ ) ;
1108
+ }
1109
+ }
1110
+ }
1111
+
1103
1112
static string CreateQueryString ( List < KeyValuePair < string , string ? > > queryParamsToAdd )
1104
1113
{
1105
1114
// Suppress warning as ValueStringBuilder.ToString calls Dispose()
0 commit comments