Как получить определенную часть из строки запроса запроса HttpGET

Мне нужно получить определенную часть из строки запроса GET-запроса. Например, если строка запроса:

action=balance&id=123&session_id=123&key=3843

Я хотел бы преобразовать его в

action=balance&id=123&session_id=123

т.е. я хотел бы отрезать часть параметра key. Как я мог это сделать?

почему бы тебе не использовать string.split ()

arslanaybars 04.04.2018 13:29

Пожалуйста, укажите предпочитаемый язык. Я написал образец для javascript.

Learner 04.04.2018 13:32

в asp.net вы можете использовать функцию разделения, которая вернет массив, и вы можете переставить их, оставив последний

Learner 04.04.2018 13:33
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
712
6

Ответы 6

После недолгого поиска в Google я нашел ответ здесь: https://www.codeproject.com/Tips/574956/How-to-get-URL-and-QueryString-value-in-an-ASP-NET

Короче говоря, вы можете получить то, что ищете, используя следующий метод:

Request.ServerVariables("QUERY_STRING")

Это не ответ на вопрос. Почему вы показываете, как получить строку запроса, хотя OP уже имеет строку запроса? Что ж, его формулировка немного неясна, но если вы внимательно прочитаете вопрос, вы увидите, что у него уже есть строка запроса, и его вопрос заключается в том, как получить определенную часть этой строки.

Binarus 09.04.2018 09:35

используйте функцию подстроки на выбранном вами языке

для напр. в javascript вы можете сделать это как

 var f = "action=balance&id=123&session_id=123&key=3843";

 var a = f.replace(f.substring(f.indexOf('&key')),"");

Есть и другие способы.

Пытаться

Regex.Replace(Request.RawUrl, @"&key.*", "")

строка qs = Request.params;

Это вернет коллекцию всех параметров в текущем

Этот ответ не поможет OP. Поскольку qs - строка, у него точно такая же проблема, как и раньше.

Binarus 04.04.2018 14:40

у вас есть альтернативное решение для этого @Binarus

Aijaj Hussain Ansari 07.04.2018 07:58

Некоторые решения упоминаются в других комментариях или ответах. Но остерегайтесь подводных камней ...

Binarus 07.04.2018 11:25

Получите последний индекс символа '&'. Затем получите подстроку.

string url = Request.params; 

int index = url.LastIndexOf('&');

var urlWithOutKey = url.Substring(0, index);

Это решение работает в этом частном случае, но не работает, если параметр &key не последний. В конце концов, вы не можете предсказать, в каком порядке параметры (сгенерированные браузером, клиентский код, сценарии оболочки и т. д.) Будут найдены в строке запроса.

Binarus 07.04.2018 11:20

Я изучил еще немного и нашел это решение

        string url = Request.RequestUri.ToString();
        Uri uri = new Uri(url);
        string urlStringQuery = uri.Query;
        int endIndex = urlStringQuery.IndexOf("&key", 1);
        string query = urlStringQuery.Substring(1, endIndex - 1);

Это не удастся, если есть другой параметр, например &keyword. Кроме того, вы не можете полагаться на порядок параметров в строке запроса. Если параметр &key не последний, это тоже не сработает.

Binarus 07.04.2018 11:24

В ваших словах есть смысл, но я пишу этот API в соответствии с некоторой документацией, в которой уже описан формат URL с точным следствием параметров.

So_oP 08.04.2018 19:36

Другие вопросы по теме