Как извлечь хост из строки - PullRequest
0 голосов
/ 07 марта 2019

У меня есть запрос в виде строки (из-за работы на уровне TCP) , и я хотел бы получить только хост:

GET http://www.mrjacks.nl/ HTTP/1.1
cache - control: no - cache
Postman - Token: 037a5930 - 715d - 477d - a1d2 - d9445e6f675c
User - Agent: PostmanRuntime / 7.2.0
Accept: */*
Host: www.mrjacks.nl
accept-encoding: gzip, deflate
Connection: keep-alive

В этом случае я хочу получить"www.mrjacks.nl".

Я использую язык программирования C #.

Кто-нибудь знает, как получить этот URL?Через Regex или какой-то другой класс?Я новичок в regex, и я попытался немного возиться с этим, но безуспешно

Ответы [ 2 ]

0 голосов
/ 07 марта 2019

Ну, это не так сложно сделать некоторые манипуляции со строками.Первое, что нужно сделать, это найти строку с помощью слова «Host:», а когда вы ее найдете - удалить слово «Host:» из этой строки.Остаток будет адресом.

string s = @"GET http://www.mrjacks.nl/ HTTP/1.1
             cache - control: no - cache
             Postman - Token: 037a5930 - 715d - 477d - a1d2 - d9445e6f675c
             User - Agent: PostmanRuntime / 7.2.0
             Accept: */*
             Host: www.mrjacks.nl
             accept-encoding: gzip, deflate
             Connection: keep-alive";
var lines = s.Split('\n');
string result = "no result";
foreach(var line in lines)
{
    if(line.StartsWith("Host:"))
    {
        result = line.Replace("Host: ", "");
        break;
    }
}
Console.WriteLine(result);
0 голосов
/ 07 марта 2019

Пожалуйста, смотрите: -

https://stackoverflow.com/a/14212007/385965

В зависимости от того, как вы строите HTTP-запрос, URL-адрес может уже храниться в свойстве на основе класса Uri.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...