Моноблочный тест с использованием WebClient получает исключение ConnectFailure - PullRequest
1 голос
/ 21 декабря 2011

Я пытаюсь провести модульное тестирование некоторого базового кода System.Net.WebClient для загрузки строки с использованием конечной точки HTTPS. Кажется, что использование HTTPS из теста NUnit не сработает, несмотря ни на что. Я могу использовать HTTP в тесте NUnit без проблем. Я могу запустить код HTTPS в консольном приложении без проблем.

Вот код ...

        [Test()]
        public void TestWebclientHttp()
        {
            using (System.Net.WebClient wc = new System.Net.WebClient())
            {
                string data = wc.DownloadString("http://maps.googleapis.com/maps/api/geocode/json?address=alvis%20court&sensor=true");
                System.Diagnostics.Debug.WriteLine(data);
            }           
        }

        [Test()]
        public void TestWebClientHttps()
        {
            using (System.Net.WebClient wc = new System.Net.WebClient())
            {
                string data = wc.DownloadString("https://maps.googleapis.com/maps/api/geocode/json?address=alvis%20court&sensor=true");
                System.Diagnostics.Debug.WriteLine(data);
            }
        }

Вот трассировка стека ...

    at System.Net.HttpWebRequest.EndGetResponse (IAsyncResult asyncResult) [0x0005e] in /private/tmp/monobuild/build/BUILD/mono-2.10.6/mcs/class/System/System.Net/HttpWebRequest.cs:828 
  at System.Net.HttpWebRequest.GetResponse () [0x0000e] in /private/tmp/monobuild/build/BUILD/mono-2.10.6/mcs/class/System/System.Net/HttpWebRequest.cs:836 
  at System.Net.WebClient.GetWebResponse (System.Net.WebRequest request) [0x00000] in /private/tmp/monobuild/build/BUILD/mono-2.10.6/mcs/class/System/System.Net/WebClient.cs:1433 
  at System.Net.WebClient.ReadAll (System.Net.WebRequest request, System.Object userToken) [0x00000] in /private/tmp/monobuild/build/BUILD/mono-2.10.6/mcs/class/System/System.Net/WebClient.cs:866 
  at System.Net.WebClient.DownloadDataCore (System.Uri address, System.Object userToken) [0x0000a] in /private/tmp/monobuild/build/BUILD/mono-2.10.6/mcs/class/System/System.Net/WebClient.cs:246

Среда разработки ...

  • Mac OS X 10.6.8
  • Моно развивать 2.8.5
  • Mono runtime 2.10.6

Спасибо.

1 Ответ

1 голос
/ 21 декабря 2011

Mono не поставляется с доверенным корневым сертификатом по умолчанию.

Вы можете установить их самостоятельно, используя mozroot или, просто для тестирования ( не для производства), разрешить использование любого SSL-сертификата.

...