Строки разбораC#

Место общения программистов C#
Ответить
Anonymous
 Строки разбора

Сообщение Anonymous »

У меня есть функция Azure Function .NET 6.0 HTTP.

Код: Выделить всё

?param=foo&param=escape%2Ctest
[*]

Код: Выделить всё

?param=foo,escape%2Ctest
В обоих случаях я хотел бы извлечь массив

Код: Выделить всё

["foo", "escape,test"]
[/b].
Я был удивлен, обнаружив, что параметры обработки строки запроса, доступные мне либо не поддерживали синтаксис запятой, либо URL декодировал строку запроса как часть группировки параметров.

Код: Выделить всё

[i]System.Web.[/i]HttpUtility.ParseQueryString[/b]
[*]

Код: Выделить всё

[i]Microsoft.AspNetCore.WebUtilities.[/i]QueryHelpers.ParseQuery[/b]
[*]

Код: Выделить всё

[i]Microsoft.AspNetCore.Http.[/i]HttpRequest.Query[/b]
Вот демо в скрипке .NET:

Код: Выделить всё

var qs = "?param=foo,escape%2Ctest";

var a = httpRequest.Query["param"];
// ["foo,escape,test"]

var b = HttpUtility.ParseQueryString(qs)["param"];
// "foo,escape,test"

var c = QueryHelpers.ParseQuery(qs)["param"];
// ["foo,escape,test"]
< /code>
Я немного удивлен, что нет поддержки отдельного формата запятой. И я очень удивлен, что, похоже, нет способа получить сегментированную строку запроса без декодирования параметров строки запроса (что предотвращает различие между Param = foo, Escape%2ctest 
и? Param = foo, Escape, Test ).
Я буду публиковать свое текущее решение в качестве «Ответ», но я буду не буду я буду не буду я стараться. Я не буду использовать. Если кто -то сможет указать на то, что я здесь пропустил, я буду признателен.

Подробнее здесь: https://stackoverflow.com/questions/712 ... mma-syntax
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»