使用自定义协议

Using custom protocol

我想使用不同于 http(s):// 的其他协议,特别是我想构建一个以 vrchat:// 开头的 URL 但由于某种原因它总是杀死第二个 /

        var url = "vrchat://".AppendPathSegment("launch");
        if (!string.IsNullOrWhiteSpace(innerString)) {
            url.SetQueryParam("id", innerString, true);
        }
        //url.SetQueryParam("ref", "vrchat.com");
        Console.WriteLine("Connecting to {0}", url);

结果

Connecting to vrchat:/launch?id=wrld_b805006c-bec7-4179-958a-5a9351e48d5c

您实际上并没有在此处附加路径段,而是在附加 authorityAppendPathSegment 在普通旧字符串连接上的主要行为是编码并确保段之间只有 1 个 / 字符,这很可能导致您所看到的。你不想或不需要这些行为,所以(假设权限是可变的)只需使用字符串连接:

var url = "vrchat://" + authority;
// or
var url = $"vrchat://{authority}";