|
|
|
@ -8,7 +8,6 @@ using JetBrains.Annotations; |
|
|
|
using Volo.Abp.Http.Modeling; |
|
|
|
using Volo.Abp.Http.ProxyScripting.Generators; |
|
|
|
using Volo.Abp.Localization; |
|
|
|
using Volo.Abp.Reflection; |
|
|
|
|
|
|
|
namespace Volo.Abp.Http.Client.DynamicProxying |
|
|
|
{ |
|
|
|
@ -82,9 +81,10 @@ namespace Volo.Abp.Http.Client.DynamicProxying |
|
|
|
continue; |
|
|
|
} |
|
|
|
|
|
|
|
AddQueryStringParameter(urlBuilder, isFirstParam, queryStringParameter.Name, value); |
|
|
|
|
|
|
|
isFirstParam = false; |
|
|
|
if (AddQueryStringParameter(urlBuilder, isFirstParam, queryStringParameter.Name, value)) |
|
|
|
{ |
|
|
|
isFirstParam = false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (apiVersion.ShouldSendInQueryString()) |
|
|
|
@ -93,28 +93,37 @@ namespace Volo.Abp.Http.Client.DynamicProxying |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private static void AddQueryStringParameter( |
|
|
|
private static bool AddQueryStringParameter( |
|
|
|
StringBuilder urlBuilder, |
|
|
|
bool isFirstParam, |
|
|
|
string name, |
|
|
|
[NotNull] object value) |
|
|
|
{ |
|
|
|
urlBuilder.Append(isFirstParam ? "?" : "&"); |
|
|
|
|
|
|
|
if (value.GetType().IsArray || (value.GetType().IsGenericType && value is IEnumerable)) |
|
|
|
{ |
|
|
|
var index = 0; |
|
|
|
foreach (var item in (IEnumerable) value) |
|
|
|
{ |
|
|
|
if (index == 0) |
|
|
|
{ |
|
|
|
urlBuilder.Append(isFirstParam ? "?" : "&"); |
|
|
|
} |
|
|
|
urlBuilder.Append(name + $"[{index++}]=" + System.Net.WebUtility.UrlEncode(ConvertValueToString(item)) + "&"); |
|
|
|
} |
|
|
|
//remove & at the end of the urlBuilder.
|
|
|
|
urlBuilder.Remove(urlBuilder.Length - 1, 1); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
urlBuilder.Append(name + "=" + System.Net.WebUtility.UrlEncode(ConvertValueToString(value))); |
|
|
|
|
|
|
|
if (index > 0) |
|
|
|
{ |
|
|
|
//remove & at the end of the urlBuilder.
|
|
|
|
urlBuilder.Remove(urlBuilder.Length - 1, 1); |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
urlBuilder.Append(isFirstParam ? "?" : "&"); |
|
|
|
urlBuilder.Append(name + "=" + System.Net.WebUtility.UrlEncode(ConvertValueToString(value))); |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
private static string ConvertValueToString([NotNull] object value) |
|
|
|
|