System.Net.WebConnectionStream.SetHeadersAsync C# (CSharp) Method

SetHeadersAsync() private method

private SetHeadersAsync ( System.Net.SimpleAsyncResult result, bool setInternalLength ) : bool
result System.Net.SimpleAsyncResult
setInternalLength bool
return bool
		bool SetHeadersAsync (SimpleAsyncResult result, bool setInternalLength)
		{
			if (headersSent)
				return false;

			bool webdav = false;
			bool writestream = false;

			switch (request.Method) {
			case "PROPFIND":
			case "PROPPATCH":
			case "MKCOL":
			case "COPY":
			case "MOVE":
			case "LOCK":
			case "UNLOCK":
				webdav = true;
				break;
			case "POST":
			case "PUT":
				writestream = true;
				break;
			}

			if (setInternalLength && writestream && writeBuffer != null)
				request.InternalContentLength = writeBuffer.Length;

			if (!(sendChunked || request.ContentLength > -1 || !writestream || webdav))
				return false;

			headersSent = true;
			headers = request.GetRequestHeaders ();

			var innerResult = cnc.BeginWrite (request, headers, 0, headers.Length, r => {
				try {
					cnc.EndWrite (request, true, r);
					if (!initRead) {
						initRead = true;
						WebConnection.InitRead (cnc);
					}
					var cl = request.ContentLength;
					if (!sendChunked && cl == 0)
						requestWritten = true;
					result.SetCompleted (false);
				} catch (WebException e) {
					result.SetCompleted (false, e);
				} catch (Exception e) {
					result.SetCompleted (false, new WebException ("Error writing headers", e, WebExceptionStatus.SendFailure));
				}
			}, null);

			return innerResult != null;
		}

Same methods

WebConnectionStream::SetHeadersAsync ( bool setInternalLength, SimpleAsyncCallback callback ) : void

Usage Example

		internal void SetWriteStream (WebConnectionStream stream)
		{
			if (Aborted)
				return;
			
			writeStream = stream;
			if (bodyBuffer != null) {
				webHeaders.RemoveInternal ("Transfer-Encoding");
				contentLength = bodyBufferLength;
				writeStream.SendChunked = false;
			}

			writeStream.SetHeadersAsync (false, result => {
				if (result.GotException) {
					SetWriteStreamError (result.Exception);
					return;
				}

				haveRequest = true;

				SetWriteStreamInner (inner => {
					if (inner.GotException) {
						SetWriteStreamError (inner.Exception);
						return;
					}

					if (asyncWrite != null) {
						asyncWrite.SetCompleted (inner.CompletedSynchronously, writeStream);
						asyncWrite.DoCallback ();
						asyncWrite = null;
					}
				});
			});
		}
All Usage Examples Of System.Net.WebConnectionStream::SetHeadersAsync