https и 443 вместе в Ури C# - PullRequest
       14

https и 443 вместе в Ури C#

0 голосов
/ 29 марта 2020

. Net Core 3.1, HttpWebRequest

Привет!

Мне нужно запросить URL-адрес https : // домен: 443 / что-то (внешнее требование), но Uri.ToString () удаляет порт из Uri.

В результате мне нужно получить "POST https : // domain: 443 / что-то HTTP / 1.1 "

Спасибо!

Ответы [ 2 ]

0 голосов
/ 29 марта 2020

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

var myUri = new Uri("https://domain:443/something");
var myString = myUri.OriginalString;
0 голосов
/ 29 марта 2020

Строка, возвращаемая этим методом, не содержит информации о порте, если порт является портом по умолчанию для схемы.

Источник: https://docs.microsoft.com/en-us/dotnet/api/system.uri.tostring?view=netcore-3.1

Если установить для порта значение, превышающее 443, а затем вызвать ToString(), отобразится номер порта.

Свойство OriginalString в Uri покажет вам исходный строка, переданная в конструктор (с номером порта).

Редактировать: порт все еще сохраняется в объекте Uri, он просто не отображается ToString(); если вы посмотрите на значение свойства Port на Uri, то увидите, что оно установлено на 423. Использование этого объекта Uri в HttpWebRequest приведет к выполнению запроса на порт 443.

Как уже говорили другие, если вы используете порт 443, вам не нужно беспокоиться обо всем этом, потому что порт 443 является портом по умолчанию для https.

...