internal void SendRequestHeaders (bool propagate_error) { StringBuilder req = new StringBuilder (); string query; if (!ProxyQuery) { query = actualUri.PathAndQuery; } else { query = String.Format ("{0}://{1}{2}", actualUri.Scheme, Host, actualUri.PathAndQuery); } if (!force_version && servicePoint.ProtocolVersion != null && servicePoint.ProtocolVersion < version) { actualVersion = servicePoint.ProtocolVersion; } else { actualVersion = version; } req.AppendFormat ("{0} {1} HTTP/{2}.{3}\r\n", method, query, actualVersion.Major, actualVersion.Minor); req.Append (GetHeaders ()); string reqstr = req.ToString (); byte [] bytes = Encoding.UTF8.GetBytes (reqstr); try { writeStream.SetHeaders (bytes); } catch (WebException wexc) { SetWriteStreamError (wexc.Status, wexc); if (propagate_error) throw; } catch (Exception exc) { SetWriteStreamError (WebExceptionStatus.SendFailure, exc); if (propagate_error) throw; } }
internal void SendRequestHeaders() { StringBuilder req = new StringBuilder(); string query; if (!ProxyQuery) { query = actualUri.PathAndQuery; } else if (actualUri.IsDefaultPort) { query = String.Format("{0}://{1}{2}", actualUri.Scheme, actualUri.Host, actualUri.PathAndQuery); } else { query = String.Format("{0}://{1}:{2}{3}", actualUri.Scheme, actualUri.Host, actualUri.Port, actualUri.PathAndQuery); } if (servicePoint.ProtocolVersion != null && servicePoint.ProtocolVersion < version) { actualVersion = servicePoint.ProtocolVersion; } else { actualVersion = version; } req.AppendFormat("{0} {1} HTTP/{2}.{3}\r\n", method, query, actualVersion.Major, actualVersion.Minor); req.Append(GetHeaders()); string reqstr = req.ToString(); byte [] bytes = Encoding.UTF8.GetBytes(reqstr); try { writeStream.SetHeaders(bytes, 0, bytes.Length); } catch (WebException wexc) { SetWriteStreamError(wexc.Status); } catch (Exception) { SetWriteStreamError(WebExceptionStatus.SendFailure); } }