Xamarin Forms — C# — HttpUtility.ParseQueryString — автоматически форматирует строку?

#c# #json #wordpress #xamarin.forms #wordpress-rest-api

#c# #json #wordpress #xamarin.forms #wordpress-rest-api

Вопрос:

Я выполняю базовый запрос API с использованием оператора ParseQueryString .

Когда я передаю определенное значение через ParseQueryString, оно автоматически форматирует его.

Например, если я передам example@example.com через ParseQueryString возвращаемый результат будет :

example@example.com

Какой сервер вернет значение null.

Однако, если переданное значение равно:

example@example.com

Тогда это будет работать.

Я понимаю, что строки запроса обычно не имеют «@», но есть ли способ передать «@» на сервер API?

Вот мой код:

 var client = new HttpClient();

var queryString = HttpUtility.ParseQueryString(string.Empty);

queryString["email"] = LoggedIn.LoggedInEmail;

var apiuri = "https://example.com/wp-json/wc/v3/customers?"   queryString;

Console.WriteLine(apiuri);

  

Возвращаемый API:

https://example.com/wp-json/wc/v3/customers?email=example@example.com

Когда она должна отображаться следующим образом:

https://example.com/wp-json/wc/v3/customers?email=example@example.com

Ответ №1:

Попробуйте использовать HttpUtility.UrlDecode метод после создания apiuri.

 var client = new HttpClient();

var queryString = HttpUtility.ParseQueryString(string.Empty);

queryString["email"] = LoggedIn.LoggedInEmail;

var apiuri = "https://example.com/wp-json/wc/v3/customers?"   queryString;

var url = HttpUtility.UrlDecode(apiuri,Encoding.UTF8);
Console.WriteLine(url);