1. 语法校验 字符串里只要多一个空格、少一个 /、中文没转义,后面 HttpClient 会直接炸。 Uri 构造函数会第一时间给你抛 UriFormatException,早发现早处理。
2. 把“一串字符”升级成“有结构的零件箱” 转成 Uri 后,你就能直接拿这些字段,而不用再 Substring、IndexOf 去切字符串:
uri.Scheme // http https ftp … uri.Host // example.com uri.Port // 80 443 21 … uri.AbsolutePath// /folder/file.txt uri.Query // ?id=123
3. 系统 API 只认 Uri,不认 string .NET 里所有真正干活的类—— HttpClient, WebClient, WebRequest, BitmapImage, StorageFile, HttpWebRequest …
它们的重载签名都是: GetAsync(Uri uri) // ✅ GetAsync(string address) // ❌ 没有或已被标记 obsolete 所以你不转 Uri,后面就得让系统在内部帮你转,失败信息反而更难看。