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 (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;
}
}