diff --git a/SalesforceApiClient.cs b/SalesforceApiClient.cs index 228ab54..1a3f4e6 100644 --- a/SalesforceApiClient.cs +++ b/SalesforceApiClient.cs @@ -12,6 +12,7 @@ using System.Net.Http.Headers; using System.Text; using Newtonsoft.Json.Converters; using System.Net; +using System.Text.RegularExpressions; namespace Salesforce.NET { @@ -408,6 +409,9 @@ namespace Salesforce.NET /// public async Task> QueryAsync(string query) { + // clean up query and encode prior to sending + query = FormatQuery(query); + var queryApiUrl = await GetEndpointUrlAsync($"query?q={query}"); return await InvokeRequestAsync(async httpClient => @@ -649,6 +653,15 @@ namespace Salesforce.NET } } + private static string FormatQuery(string query) + { + query = Regex.Replace(query, "[\r\n\t]", string.Empty); + query = Regex.Replace(query, "[ ]{2,}", " "); + query = WebUtility.UrlEncode(query); + + return query; + } + #endregion } } \ No newline at end of file