使用自定义协议
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
您实际上并没有在此处附加路径段,而是在附加 authority。 AppendPathSegment
在普通旧字符串连接上的主要行为是编码并确保段之间只有 1 个 /
字符,这很可能导致您所看到的。你不想或不需要这些行为,所以(假设权限是可变的)只需使用字符串连接:
var url = "vrchat://" + authority;
// or
var url = $"vrchat://{authority}";
我想使用不同于 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
您实际上并没有在此处附加路径段,而是在附加 authority。 AppendPathSegment
在普通旧字符串连接上的主要行为是编码并确保段之间只有 1 个 /
字符,这很可能导致您所看到的。你不想或不需要这些行为,所以(假设权限是可变的)只需使用字符串连接:
var url = "vrchat://" + authority;
// or
var url = $"vrchat://{authority}";