我正在使用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。
答案 0 :(得分:2)
你不能;并且没有任何内容表明http://example.com
和https://example.com
需要表示相同的信息,尽管按照惯例,它几乎总是如此。如果你满足于假设两者是等价的,你只需要尝试两者(或者至少,决定尝试首先)。