подскажите регулярку для отделения заголовков от тела в запросе

volody00

Client
Регистрация
06.09.2016
Сообщения
918
Благодарностей
953
Баллы
93
Вот пример запроса:
C#:
string response = ZennoPoster.HTTP.Request(ZennoLab.InterfacesLibrary.Enums.Http.HttpMethod.GET, "https://google.com", string.Empty, "application/x-www-form-urlencoded", "", "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody, 30000, "", project.Profile.UserAgent, true, 5, null, project.Directory, false, true, project.Profile.CookieContainer, true);
суть в том, что в ответе нужно оставить только тело. Замучился уже, никак не могу подобрать норм вариант. При чем в конструкторе вроде как можно с помощью переноса строк, а в коде чёт не робит.

P.S. Я знаю, что можно было в перечислении передать bodyOnly, но мне не подходит, т.к. анализируются заголовки ответа, а затем мне надо поработать с телом запроса
 

volody00

Client
Регистрация
06.09.2016
Сообщения
918
Благодарностей
953
Баллы
93
остановился пока на таком варианте. если кто подскажет более надежный, буду благодарен
[<{][\w\W]*
 

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 777
Благодарностей
1 447
Баллы
113
Вот пример запроса:
C#:
string response = ZennoPoster.HTTP.Request(ZennoLab.InterfacesLibrary.Enums.Http.HttpMethod.GET, "https://google.com", string.Empty, "application/x-www-form-urlencoded", "", "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody, 30000, "", project.Profile.UserAgent, true, 5, null, project.Directory, false, true, project.Profile.CookieContainer, true);
суть в том, что в ответе нужно оставить только тело. Замучился уже, никак не могу подобрать норм вариант. При чем в конструкторе вроде как можно с помощью переноса строк, а в коде чёт не робит.

P.S. Я знаю, что можно было в перечислении передать bodyOnly, но мне не подходит, т.к. анализируются заголовки ответа, а затем мне надо поработать с телом запроса

C#:
string response = ZennoPoster.HTTP.Request(ZennoLab.InterfacesLibrary.Enums.Http.HttpMethod.GET,
                                           "https://google.com",
                                           string.Empty,
                                           "application/x-www-form-urlencoded",
                                           "",
                                           "UTF-8",
                                           ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly,
                                           30000,
                                           "",
                                           project.Profile.UserAgent,
                                           true,
                                           5,
                                           null,
                                           project.Directory,
                                           false,
                                           true,
                                           project.Profile.CookieContainer,
                                           true);
 

volody00

Client
Регистрация
06.09.2016
Сообщения
918
Благодарностей
953
Баллы
93
C#:
string response = ZennoPoster.HTTP.Request(ZennoLab.InterfacesLibrary.Enums.Http.HttpMethod.GET,
                                           "https://google.com",
                                           string.Empty,
                                           "application/x-www-form-urlencoded",
                                           "",
                                           "UTF-8",
                                           ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly,
                                           30000,
                                           "",
                                           project.Profile.UserAgent,
                                           true,
                                           5,
                                           null,
                                           project.Directory,
                                           false,
                                           true,
                                           project.Profile.CookieContainer,
                                           true);
я отписывал, что такой вариант не подходит. мне нужно проанализировать заголовки, прежде чем работать с телом, а в этом случае я просто не получаю заголовки.

P.S. выше кинул регулярку, если кому надо, но пока не знаю, насколько она хороша (уже который раз переделываю)
 

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 424
Баллы
113
Заголовки отделяются от тела двумя пустыми строками. Следовательно, как я не дружу с регулярками, сделал бы так:
C#:
string headers = response.Split(new[]{string.Format(@"{0}{0}{0}", Environment.NewLine)}, StringSplitOptions.None)[0];
string body = response.Replace(headers, "").Trim();
 
  • Спасибо
Реакции: volody00

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)