Использование собственного протокола - PullRequest
0 голосов
/ 14 сентября 2018

Я хотел бы использовать протокол, отличный от http(s)://, в частности, я хочу создать URL, начинающийся с vrchat://, но по какой-то причине он всегда убивает второй /

        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

1 Ответ

0 голосов
/ 14 сентября 2018

Вы на самом деле не добавляете туда сегмент пути, вы добавляете авторитет .Основным поведением AppendPathSegment по сравнению с простой старой конкатенацией строк является кодирование и обеспечение 1 и только 1 / символа между сегментами, что, скорее всего, вызывает то, что вы видите.Вы не хотите или не нуждаетесь в таком поведении здесь, поэтому (при условии, что полномочия являются переменными) просто используйте конкатенацию строк:

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