RestSharp RestRequest URL теряет завершающий символ при запуске в веб-сервисе - PullRequest
0 голосов
/ 23 января 2020

Этот тест использует RestSharp для генерации URL. Приведенная ниже функция записывает другой URL-адрес в тестовый файл в зависимости от того, вызывается ли он в C#. NET настольном консольном приложении или если он вызывается в веб-службе C#. NET SOAP, работающей в IIS. Оба теста были запущены на одном сервере Windows 2012 R2. URL-адрес должен заканчиваться точкой, но при запуске в веб-службе последний символ URL-адреса теряется.

        private static void TestCreateUri()
        {
            var client = new RestClient("https://testing/one/two/three");
            client.Authenticator = new HttpBasicAuthenticator("giberish", "nonsense");

            var request = new RestRequest("thing/{thing_id}", Method.DELETE);
            request.AddHeader("account-number", "1234567890");
            request.AddUrlSegment("thing_id", "pOIK0E3nqXIAAAFvsIYzK8o.");

            var uri = client.BuildUri(request);

            File.WriteAllText(@"c:\temp\test.txt", uri.ToString());
        }

При запуске с рабочего стола это записывается в файл: https://testing/one/two/three/thing/pOIK0E3nqXIAAAFvsIYzK8o.

При запуске в веб-сервисе конечный период теряется и записывается в файл: https://testing/one/two/three/thing/pOIK0E3nqXIAAAFvsIYzK8o

RestSharp версия 106.10.1, последняя стабильная версия, когда я пишу этот вопрос. . NET версия 4.7.

Похоже, это происходит только тогда, когда последний добавляемый символ в UrlSegment является точкой. Я не пробовал все возможные другие символы, но из всех, что я тестировал, эта проблема возникает только в течение определенного периода.

Такое поведение наблюдается на двух разных серверах Windows 2012 R2.

I необходимо вызвать веб-службу REST из веб-службы SOAP. Что я могу сделать, чтобы URL был создан правильно?

...