Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var url = "https://localhost:44636/api/uploads";
- var request = (HttpWebRequest)WebRequest.Create(url);
- request.Method = "POST";
- var credentialCache = new CredentialCache();
- var username = "APIUser";
- var password = "APIUserPassword";
- credentialCache.Add(new Uri(url), "Basic", new NetworkCredential(username, password));
- request.Credentials = credentialCache;
- request.PreAuthenticate = true;
- request.Accept = "application/json";
- request.AllowWriteStreamBuffering = true;
- var uploadFileRequest = new UploadFileRequest();
- uploadFileRequest.environment = "DEV";
- uploadFileRequest.filename = filename;
- uploadFileRequest.multipartFile = File.ReadAllText(filepath + @"" + filename, UTF8Encoding.UTF8);
- var boundaryText = "--ACI-XFER";
- var bodyText = new StringBuilder();
- bodyText.Append("--" + boundaryText + "rn");
- bodyText.Append("Content-Disposition: form-data; name="filename"" + "rnrn");
- bodyText.Append(uploadFileRequest.filename + "rn");
- bodyText.Append("--" + boundaryText + "rn");
- bodyText.Append("Content-Disposition: form-data; name="environment"" + "rnrn");
- bodyText.Append(uploadFileRequest.environment + "rn");
- bodyText.Append("--" + boundaryText + "rn");
- bodyText.Append("Content-Disposition: form-data; name="multipartFile"; filename="" +
- uploadFileRequest.filename + """ + "rn");
- bodyText.Append("Content-Type: text/plain" + "rnrn");
- bodyText.Append(uploadFileRequest.multipartFile + "rn");
- bodyText.Append("--" + boundaryText + "--");
- var bodyBytes = UTF8Encoding.UTF8.GetBytes(bodyText.ToString());
- request.ContentType = "multipart/form-data; boundary=" + boundaryText;
- request.ContentLength = bodyBytes.Length;
- var requestStream = request.GetRequestStream();
- requestStream.Write(bodyBytes, 0, bodyBytes.Length);
- requestStream.Close();
- using (var webResponse = (HttpWebResponse)request.GetResponse())
- {
- if (webResponse.StatusCode == HttpStatusCode.OK)
- {
- using (var responseReader = new StreamReader(webResponse.GetResponseStream()))
- {
- var responseText = responseReader.ReadToEnd();
- if (logger.IsDebugEnabled)
- {
- logger.Debug("HttpWebResponse: rn" + responseText + "rn");
- }
- }
- return true;
- }
- else
- {
- if (logger.IsErrorEnabled)
- {
- logger.Error("HttpWebResponse Error UploadProcessFile(), Server: " +
- webResponse.Server + ", StatusCode: " + webResponse.StatusCode + ", StatusDescription: " +
- webResponse.StatusDescription);
- }
- return false;
- }
- }
- }
- boundryText = "ACI-XFER"
- using (var client = new HttpClient())
- {
- client.BaseAddress = new Uri("https://localhost:44636");
- client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
- string relativeUrl = "api/uploads";
- HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, relativeUrl);
- var byteArray = new UTF8Encoding().GetBytes("APIUser:APIUserPassword");
- request.Headers.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
- using (var content = new MultipartFormDataContent(boundryText))
- {
- content.Add(new StringContent(uploadFileRequestDto.FileName + "rn"), "filename");
- content.Add(new StringContent(uploadFileRequestDto.PdxEnvironment + "rn"), "environment");
- Encoding encNoBoM = new UTF8Encoding(false);
- content.Add(new StringContent(uploadFileRequestDto.TextFile + """ + "rn", encNoBoM, "text/plain"), "multipartfile", uploadFileRequestDto.FileName);
- request.Content = content;
- response = await client.SendAsync(request);
- }
- }
- if (response.IsSuccessStatusCode)
- {
- string jsonResult = response.Content.ReadAsStringAsync().Result;
- uploadFileResponseDto = (uploadFileResponseDto)JsonConvert.DeserializeObject(jsonResult);
- uploadFileResponseDto.Success = true;
- uploadFileResponseDto.StatusCode = 200;
- return uploadFileResponseDto;
- }
- _logger.LogError("File upload for Id [{ID}] failed. Reason: {ReasonPhrase}", uploadFileRequestDto.Id, response.ReasonPhrase);
- uploadFileResponseDto.Success = false;
- uploadFileResponseDto.Reason = string.Format($"Status Code: [{response.StatusCode}], Reason: [{response.ReasonPhrase}]");
- uploadFileResponseDto.StatusCode = 500;
- return uploadFileResponseDto;
- **Headers**
- POST /api/uploads HTTP/1.1
- Connection: Keep-Alive
- Content-Type: multipart/form-data; boundary="--ACI-XFER"
- Accept: application/json
- Authorization: Basic XXXXXXXXXXXXXXXXXXXXXX
- x-ms-request-root-id: 4f112b3-4c33c20cb1d76dec
- x-ms-request-id: |4f112b3-4c33c20cb1d76dec.1.
- Request-Id: |4f112b3-4c33c20cb1d76dec.1.1.
- Content-Length: 325354
- Host: localhost:44636
- Content
- ----ACI-XFER
- Content-Type: text/plain; charset=utf-8
- Content-Disposition: form-data; name=filename
- test1upload.txt
- ----ACI-XFER
- Content-Type: text/plain; charset=utf-8
- Content-Disposition: form-data; name=environment
- DEV
- ----ACI-XFER
- Content-Type: text/plain; charset=utf-8
- Content-Disposition: form-data; name=multipartfile; filename=test1upload.txt; filename*=utf-8''test1upload.txt
- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum
- content.Add(new StringContent(uploadFileRequestDto.TextFile + """ + "rn", encNoBoM, "text/plain"), "multipartfile", uploadFileRequestDto.FileName);
- content.Add(new StringContent(uploadFileRequestDto.TextFile, encNoBoM, "text/plain"), "multipartfile", uploadFileRequestDto.FileName);
Add Comment
Please, Sign In to add comment