protected string SendRequestMultiPart(string url, Dictionary <string, string> args, NameValueCollection headers = null, CookieCollection cookies = null, HttpMethod method = HttpMethod.POST) { string boundary = RequestHelpers.CreateBoundary(); string contentType = RequestHelpers.ContentTypeMultipartFormData + "; boundary=" + boundary; byte[] data = RequestHelpers.MakeInputContent(boundary, args); using (MemoryStream stream = new MemoryStream()) { stream.Write(data, 0, data.Length); using (HttpWebResponse webResponse = GetResponse(method, url, stream, contentType, null, headers, cookies)) { return(ProcessWebResponseText(webResponse)); } } }
protected UploadResult SendRequestFile(string url, Stream data, string fileName, string fileFormName, Dictionary <string, string> args = null, NameValueCollection headers = null, CookieCollection cookies = null, HttpMethod method = HttpMethod.POST, string contentType = RequestHelpers.ContentTypeMultipartFormData, string relatedData = null) { UploadResult result = new UploadResult(); IsUploading = true; StopUploadRequested = false; try { string boundary = RequestHelpers.CreateBoundary(); contentType += "; boundary=" + boundary; byte[] bytesArguments = RequestHelpers.MakeInputContent(boundary, args, false); byte[] bytesDataOpen; if (relatedData != null) { bytesDataOpen = RequestHelpers.MakeRelatedFileInputContentOpen(boundary, "application/json; charset=UTF-8", relatedData, fileName); } else { bytesDataOpen = RequestHelpers.MakeFileInputContentOpen(boundary, fileFormName, fileName); } byte[] bytesDataClose = RequestHelpers.MakeFileInputContentClose(boundary); long contentLength = bytesArguments.Length + bytesDataOpen.Length + data.Length + bytesDataClose.Length; HttpWebRequest request = CreateWebRequest(method, url, headers, cookies, contentType, contentLength); using (Stream requestStream = request.GetRequestStream()) { requestStream.Write(bytesArguments, 0, bytesArguments.Length); requestStream.Write(bytesDataOpen, 0, bytesDataOpen.Length); if (!TransferData(data, requestStream)) { return(null); } requestStream.Write(bytesDataClose, 0, bytesDataClose.Length); } using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { result.Response = ProcessWebResponseText(response); } result.IsSuccess = true; } catch (Exception e) { if (!StopUploadRequested) { string response = ProcessError(e, url); if (ReturnResponseOnError && e is WebException) { result.Response = response; } } } finally { currentWebRequest = null; IsUploading = false; } return(result); }