Пример #1
0
		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;
			}
		}
Пример #2
0
        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);
            }
        }