private void ExecuteQueryToServer(ChunkStringBuilder sb) { this.m_context.FireExecutingWebRequestEvent(new WebRequestEventArgs(this.RequestExecutor)); this.RequestExecutor.RequestContentType = "text/xml"; if (this.m_context.AuthenticationMode == ClientAuthenticationMode.Default) { this.RequestExecutor.RequestHeaders["X-RequestForceAuthentication"] = "true"; } ClientRequest.ExecuteQueryMimeInfo executeQueryMimeInfo = null; if (this.SerializationContext.Streams != null && this.SerializationContext.Streams.Count > 0) { executeQueryMimeInfo = new ClientRequest.ExecuteQueryMimeInfo(); this.RequestExecutor.RequestContentType = executeQueryMimeInfo.ContentType; } Stream requestStream = this.RequestExecutor.GetRequestStream(); if (executeQueryMimeInfo != null) { this.WriteMimeStream(executeQueryMimeInfo, sb, requestStream); } else { sb.WriteContentAsUTF8(requestStream); } requestStream.Flush(); //Edited for .NET Core //requestStream.Close(); requestStream.Dispose(); this.RequestExecutor.Execute(); this.ProcessResponse(); }
private void WriteMimeStream(ClientRequest.ExecuteQueryMimeInfo mimeInfo, ChunkStringBuilder sb, Stream requestStream) { MimeWriter mimeWriter = new MimeWriter(requestStream, mimeInfo.Boundary); mimeWriter.StartPart(); mimeWriter.WriteHeader(MimeGlobals.ContentIDHeader, mimeInfo.MainPartCid); mimeWriter.WriteHeader(MimeGlobals.ContentTransferEncodingHeader, "8bit"); mimeWriter.WriteHeader(MimeGlobals.ContentTypeHeader, "application/xop+xml;charset=utf-8;type=\"application/xml\""); mimeWriter.WriteHeader(MimeGlobals.ContentLengthHeader, sb.Length.ToString(CultureInfo.InvariantCulture)); sb.WriteContentAsUTF8(mimeWriter.GetContentStream()); foreach (StreamInfo current in this.SerializationContext.Streams) { mimeWriter.StartPart(); mimeWriter.WriteHeader(MimeGlobals.ContentIDHeader, "<" + current.Id + ">"); mimeWriter.WriteHeader(MimeGlobals.ContentTransferEncodingHeader, "binary"); mimeWriter.WriteHeader(MimeGlobals.ContentTypeHeader, "application/octet-stream"); mimeWriter.WriteHeader(MimeGlobals.ContentLengthHeader, current.Stream.Length.ToString(CultureInfo.InvariantCulture)); Stream contentStream = mimeWriter.GetContentStream(); ChunkStreamBuilder.CopyStream(current.Stream, contentStream); //Edited for .NET Core current.Stream.Dispose();//.Close(); } mimeWriter.Close(); }