在Uri C#中将https和443一起使用

时间:2020-03-29 12:21:56

标签: c# serialization https uri

.Net Core 3.1,HttpWebRequest

嗨!

我需要请求一些URL https :// domain: 443 / something(外部要求),但是Uri.ToString()会从Uri中删除端口。

结果,我需要获取“ POST https :// domain: 443 / something HTTP / 1.1”

谢谢!

2 个答案:

答案 0 :(得分:0)

当端口是方案的默认端口时,此方法返回的字符串不包含端口信息。

来源:https://docs.microsoft.com/en-us/dotnet/api/system.uri.tostring?view=netcore-3.1

如果要将端口设置为大于443的端口,然后呼叫ToString(),则将显示端口号。

OriginalString的{​​{1}}属性将向您显示传递给构造函数的原始字符串(带有端口号)。

编辑:端口仍然存储在Uri对象上,Uri只是不显示该端口;如果您查看ToString()Port属性的值,则会看到它的设置为423。在Uri中使用此Uri对象将导致请求在端口443上发布。

正如其他人所说,如果您使用的是端口443,则无需担心所有这些,因为端口443是https的默认端口。

答案 1 :(得分:0)

如果您自己构建Uri,则可以使用以下代码,该代码始终返回您最初传递给构造函数的内容:

var myUri = new Uri("https://domain:443/something");
var myString = myUri.OriginalString;