/// <summary> /// Создать HTTP запрос /// </summary> /// <param name="message"> /// SOAP-запрос /// </param> /// <param name="attachment"> /// Вложение /// </param> /// <returns> /// HTTP запрос /// </returns> private HttpsRequest CreateRequest(RequestMessage message, byte[] attachment) { var mime = new MimeModel { ContentLength2 = attachment.Length }; message.AddHrefParameter("PackageBody", mime.DataId); message.GenerateHeader(vcert); mime.Message = message.ToString(); var request = CreateRequest(message.MethodName); request.Head.AppendFormat("Content-Type: multipart/related; type=\"application/xop+xml\";boundary=\"{0}\"\r\n", mime.Boundary); var mimeStr = RequestBuilder.Build(mime); var msgBytes = Encoding.UTF8.GetBytes(mimeStr); var ending = Encoding.UTF8.GetBytes(string.Format("\r\n--{0}--", mime.Boundary)); request.Body = new byte[msgBytes.Length + attachment.Length + ending.Length]; using (var stream = new MemoryStream(request.Body)) { stream.Write(msgBytes, 0, msgBytes.Length); stream.Write(attachment, 0, attachment.Length); stream.Write(ending, 0, ending.Length); stream.Close(); } return(request); }
/// <summary> /// Создать HTTP запрос /// </summary> /// <param name="message"> /// SOAP-запрос /// </param> /// <param name="attachment"> /// Вложение /// </param> /// <returns> /// HTTP запрос /// </returns> private HttpWebRequest CreateRequest(RequestMessage message, byte[] attachment) { var mime = new MimeModel { ContentLength2 = attachment.Length }; message.AddHrefParameter("PackageBody", mime.DataId); message.GenerateHeader(vcert); mime.Message = message.ToString(); var request = CreateRequest(message.MethodName); request.ContentType = string.Format("multipart/related; type=\"application/xop+xml\";boundary=\"{0}\"", mime.Boundary); var mimeStr = RequestBuilder.Build(mime); var msgBytes = Encoding.UTF8.GetBytes(mimeStr); using (var stream = request.GetRequestStream()) { stream.Write(msgBytes, 0, msgBytes.Length); stream.Write(attachment, 0, attachment.Length); var ending = Encoding.UTF8.GetBytes(string.Format("\r\n--{0}--", mime.Boundary)); stream.Write(ending, 0, ending.Length); stream.Close(); } return request; }