public void NetworkConnect(IConnectionHelperJustRemote connectionHelper, string userAgent, PURLConnection purlConnection, int connectionTimeout = ParsedUri.CONNECT_TIMEOUT, int readTimeout = ParsedUri.READ_TIMEOUT) { Uri url = purlConnection.PURL; purlConnection.Request = WebRequest.CreateDefault(url) as HttpWebRequest; if (purlConnection.Request != null) { purlConnection.Request.UserAgent = userAgent; purlConnection.Request.Timeout = connectionTimeout; purlConnection.Request.ReadWriteTimeout = readTimeout; try { purlConnection.Response = (HttpWebResponse)purlConnection.Request.GetResponse(); } catch (WebException e) { Debug.WriteLine("Web Exception ::" + e.Message); } if (purlConnection.Response != null) { // TODO check charset (using mime type) and display error message if charset not supported. Uri responseUrl = purlConnection.Response.ResponseUri; if (responseUrl != url) // follow redirects! { string requestPath = url.AbsolutePath; string responsePath = responseUrl.AbsolutePath; if (requestPath.IndexOf("http://") < 0 && responsePath.IndexOf("http://") < 0) { if (connectionHelper.ProcessRedirect(responseUrl)) { purlConnection.Stream = purlConnection.Response.GetResponseStream(); } purlConnection.Good = true; } else { Debug.WriteLine("WEIRD: skipping double stuffed URL: " + responseUrl); } } else { purlConnection.Stream = purlConnection.Response.GetResponseStream(); purlConnection.Good = true; } } else { Debug.WriteLine("ERROR: failure to get response from " + url); } } else { Debug.WriteLine("ERROR: cannot create a connection to " + url); } }
public void NetworkConnect(IConnectionHelperJustRemote connectionHelper, String userAgent, int connectionTimeout = ParsedUri.CONNECT_TIMEOUT, int readTimeout = ParsedUri.READ_TIMEOUT) { FundamentalPlatformSpecifics.Get().NetworkConnect(connectionHelper, userAgent, this, connectionTimeout, readTimeout); }
public void NetworkConnect(IConnectionHelperJustRemote connectionHelper, string userAgent, PURLConnection purlConnection, int connectionTimeout = ParsedUri.CONNECT_TIMEOUT, int readTimeout = ParsedUri.READ_TIMEOUT) { Uri url = purlConnection.PURL; purlConnection.Request = WebRequest.CreateHttp(url); if (purlConnection.Request != null) { // purlConnection.Request.UserAgent = userAgent; // purlConnection.Request.Timeout = connectionTimeout; // purlConnection.Request.ReadWriteTimeout = readTimeout; try { purlConnection.Response = (HttpWebResponse) purlConnection.Request.GetResponseAsync().Result; } catch (WebException e) { Debug.WriteLine("Web Exception ::" + e.Message); } if (purlConnection.Response != null) { // TODO check charset (using mime type) and display error message if charset not supported. Uri responseUrl = purlConnection.Response.ResponseUri; if (responseUrl != url) // follow redirects! { string requestPath = url.AbsolutePath; string responsePath = responseUrl.AbsolutePath; if (requestPath.IndexOf("http://") < 0 && responsePath.IndexOf("http://") < 0) { if (connectionHelper.ProcessRedirect(responseUrl)) purlConnection.Stream = purlConnection.Response.GetResponseStream(); purlConnection.Good = true; } else { Debug.WriteLine("WEIRD: skipping double stuffed URL: " + responseUrl); } } else { purlConnection.Stream = purlConnection.Response.GetResponseStream(); purlConnection.Good = true; } } else { Debug.WriteLine("ERROR: failure to get response from " + url); } } else { Debug.WriteLine("ERROR: cannot create a connection to " + url); } }