private void SetHeaders(HttpWebRequest webRequest) { xmlNodeList HeadersList = SourceElement.SelectNodes("HeadersList"); foreach (xmlElement Header in HeadersList) { string HeaderName = Header.GetAttribute("Name"); string HeaderValue = TargetObject.XQuery(Header.GetAttribute("Value")); webRequest.Headers.Add(HeaderName, HeaderValue); } }
/// <summary> /// Записывает данные запроса с тыпом Text /// </summary> /// <param name="writingStream">Поток для записи данных</param> private void WriteTextParams(MultipartFormDataContent multipartFormDataContent) { using xmlNodeList textList = template.SelectNodes("FormDatas[@Type='Text']"); foreach (xmlElement textParam in textList) { string textKey = GetParamKey(textParam); string textXQValue = sourceObject.XQuery(GetParamValue(textParam)); multipartFormDataContent.Add(new StringContent(textXQValue), textKey); } }
public void SetHeaders() { xmlNodeList HeadersList = TemplateElement.SelectNodes("HeadersList"); foreach (xmlElement Header in HeadersList) { string HeaderName = Header.GetAttribute("Name"); string HeaderXq = Header.GetAttribute("Value"); string HeaderValue = SourceXmlDocument.Root.XQuery(HeaderXq); httpClient.DefaultRequestHeaders.Add(HeaderName, HeaderValue); } }
/// <summary> /// Записывает данные запроса с тыпом File /// </summary> /// <param name="writingStream">Поток для записи данных</param> private void WriteFileParams(MultipartFormDataContent multipartFormDataContent) { using xmlNodeList fileList = template.SelectNodes("FormDatas[@Type='File']"); foreach (xmlElement fileParam in fileList) { string fileKey = GetParamKey(fileParam); string fileXQValue = sourceObject.XQuery(GetParamValue(fileParam)); if (string.IsNullOrEmpty(fileXQValue)) { continue; } SetFiles(fileXQValue, fileKey, multipartFormDataContent); } }
/// <summary> /// Записывает данные запроса с тыпом Text /// </summary> /// <param name="writingStream">Поток для записи данных в байты</param> void WriteTextParams(Stream writingStream) { string textHeaderTemplate = "Content-Disposition: form-data; name=\"{0}\"\r\n\r\n{2}"; using (xmlNodeList textList = template.SelectNodes("FormDatas[@Type='Text']")) { foreach (xmlElement textParam in textList) { string textKey = GetParamKey(textParam); string textValue = GetParamValue(textParam); writingStream.Write(boundarybytes, 0, boundarybytes.Length); byte[] textPartbytes = Encoding.UTF8.GetBytes(string.Format(textHeaderTemplate, textKey, textValue)); writingStream.Write(textPartbytes, 0, textPartbytes.Length); } } }
/// <summary> /// Записывает данные запроса с тыпом File /// </summary> /// <param name="writingStream">Поток для записи данных в байты</param> void WriteFileParams(Stream writingStream) { string fileHeaderTemplate = "Content-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"\r\nContent-Type: {2}\r\n\r\n"; using (xmlNodeList fileList = template.SelectNodes("FormDatas[@Type='File' or @Type='FileLibrary']")) { foreach (xmlElement fileParam in fileList) { string fileKey = GetParamKey(fileParam); string fileValue = GetParamValue(fileParam); if (string.IsNullOrEmpty(fileValue)) { continue; } xmlDocument fileListDoc = new xmlDocument(fileValue); foreach (xmlElement node in fileListDoc.Root.ChildElements) { try { string filePath = GetFilePath(node); string fileName = filePath.Split('\\')[filePath.Split('\\').Length - 1]; writingStream.Write(boundarybytes, 0, boundarybytes.Length); byte[] fileHeaderbytes = Encoding.UTF8.GetBytes(string.Format(fileHeaderTemplate, fileName, fileName, "application/octet-stream")); writingStream.Write(fileHeaderbytes, 0, fileHeaderbytes.Length); writingStream.Write(fileBytes, 0, fileBytes.Length); } catch (Exception e) { Messages.showException(e); } } } } }