从monotouch中的http和https服务器下载sting数据(检测主机是否正在使用https)

时间:2013-12-04 09:58:11

标签: c# http https xamarin.ios ios6.0

我正在使用monotouch开发适用于iOS 6+的iOS应用程序。应用程序的基础是从用户介绍的服务器中下载一些数据。

此服务器可以使用http或https。我使用下面的代码下载:

    System.Net.HttpWebRequest _HttpWebRequest = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create (Url);
            _HttpWebRequest.AllowWriteStreamBuffering = true;
            _HttpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)";
            _HttpWebRequest.Timeout = 15000;
            _HttpWebRequest .Method ="GET";

            System.Net.WebResponse _WebResponse = null;
            _WebResponse = _HttpWebRequest.GetResponse ();
            System.IO.Stream _WebStream = _WebResponse.GetResponseStream ();
            var bytes = HelperMethods .ReadToEnd (_WebStream);
            _WebResponse.Close ();
            _WebResponse.Close ();

            return System.Text.Encoding.UTF8.GetString(bytes);

当服务器为http时有效,但当服务器为https时,我应在主机名前加https://进行工作。那么在发送请求之前,如何检测主机是否使用https或http。

1 个答案:

答案 0 :(得分:2)

你不能;并且没有任何内容表明http://example.comhttps://example.com需要表示相同的信息,尽管按照惯例,它几乎总是如此。如果你满足于假设两者是等价的,你只需要尝试两者(或者至少,决定尝试首先)。