Guest User

Untitled

a guest
Jan 19th, 2018
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.62 KB | None | 0 0
  1. var url = "https://localhost:44636/api/uploads";
  2. var request = (HttpWebRequest)WebRequest.Create(url);
  3. request.Method = "POST";
  4. var credentialCache = new CredentialCache();
  5. var username = "APIUser";
  6. var password = "APIUserPassword";
  7. credentialCache.Add(new Uri(url), "Basic", new NetworkCredential(username, password));
  8. request.Credentials = credentialCache;
  9. request.PreAuthenticate = true;
  10. request.Accept = "application/json";
  11. request.AllowWriteStreamBuffering = true;
  12. var uploadFileRequest = new UploadFileRequest();
  13. uploadFileRequest.environment = "DEV";
  14. uploadFileRequest.filename = filename;
  15. uploadFileRequest.multipartFile = File.ReadAllText(filepath + @"" + filename, UTF8Encoding.UTF8);
  16. var boundaryText = "--ACI-XFER";
  17. var bodyText = new StringBuilder();
  18. bodyText.Append("--" + boundaryText + "rn");
  19. bodyText.Append("Content-Disposition: form-data; name="filename"" + "rnrn");
  20. bodyText.Append(uploadFileRequest.filename + "rn");
  21. bodyText.Append("--" + boundaryText + "rn");
  22. bodyText.Append("Content-Disposition: form-data; name="environment"" + "rnrn");
  23. bodyText.Append(uploadFileRequest.environment + "rn");
  24. bodyText.Append("--" + boundaryText + "rn");
  25. bodyText.Append("Content-Disposition: form-data; name="multipartFile"; filename="" +
  26. uploadFileRequest.filename + """ + "rn");
  27. bodyText.Append("Content-Type: text/plain" + "rnrn");
  28. bodyText.Append(uploadFileRequest.multipartFile + "rn");
  29. bodyText.Append("--" + boundaryText + "--");
  30. var bodyBytes = UTF8Encoding.UTF8.GetBytes(bodyText.ToString());
  31. request.ContentType = "multipart/form-data; boundary=" + boundaryText;
  32. request.ContentLength = bodyBytes.Length;
  33. var requestStream = request.GetRequestStream();
  34. requestStream.Write(bodyBytes, 0, bodyBytes.Length);
  35. requestStream.Close();
  36. using (var webResponse = (HttpWebResponse)request.GetResponse())
  37. {
  38. if (webResponse.StatusCode == HttpStatusCode.OK)
  39. {
  40.  
  41. using (var responseReader = new StreamReader(webResponse.GetResponseStream()))
  42. {
  43. var responseText = responseReader.ReadToEnd();
  44. if (logger.IsDebugEnabled)
  45. {
  46. logger.Debug("HttpWebResponse: rn" + responseText + "rn");
  47. }
  48. }
  49. return true;
  50. }
  51. else
  52. {
  53. if (logger.IsErrorEnabled)
  54. {
  55. logger.Error("HttpWebResponse Error UploadProcessFile(), Server: " +
  56. webResponse.Server + ", StatusCode: " + webResponse.StatusCode + ", StatusDescription: " +
  57. webResponse.StatusDescription);
  58. }
  59. return false;
  60. }
  61. }
  62. }
  63.  
  64. boundryText = "ACI-XFER"
  65. using (var client = new HttpClient())
  66. {
  67. client.BaseAddress = new Uri("https://localhost:44636");
  68. client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
  69. string relativeUrl = "api/uploads";
  70. HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, relativeUrl);
  71. var byteArray = new UTF8Encoding().GetBytes("APIUser:APIUserPassword");
  72. request.Headers.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
  73. using (var content = new MultipartFormDataContent(boundryText))
  74. {
  75. content.Add(new StringContent(uploadFileRequestDto.FileName + "rn"), "filename");
  76. content.Add(new StringContent(uploadFileRequestDto.PdxEnvironment + "rn"), "environment");
  77. Encoding encNoBoM = new UTF8Encoding(false);
  78. content.Add(new StringContent(uploadFileRequestDto.TextFile + """ + "rn", encNoBoM, "text/plain"), "multipartfile", uploadFileRequestDto.FileName);
  79. request.Content = content;
  80. response = await client.SendAsync(request);
  81. }
  82.  
  83. }
  84.  
  85. if (response.IsSuccessStatusCode)
  86. {
  87. string jsonResult = response.Content.ReadAsStringAsync().Result;
  88. uploadFileResponseDto = (uploadFileResponseDto)JsonConvert.DeserializeObject(jsonResult);
  89. uploadFileResponseDto.Success = true;
  90. uploadFileResponseDto.StatusCode = 200;
  91. return uploadFileResponseDto;
  92. }
  93.  
  94. _logger.LogError("File upload for Id [{ID}] failed. Reason: {ReasonPhrase}", uploadFileRequestDto.Id, response.ReasonPhrase);
  95. uploadFileResponseDto.Success = false;
  96. uploadFileResponseDto.Reason = string.Format($"Status Code: [{response.StatusCode}], Reason: [{response.ReasonPhrase}]");
  97. uploadFileResponseDto.StatusCode = 500;
  98. return uploadFileResponseDto;
  99.  
  100. **Headers**
  101.  
  102. POST /api/uploads HTTP/1.1
  103. Connection: Keep-Alive
  104. Content-Type: multipart/form-data; boundary="--ACI-XFER"
  105. Accept: application/json
  106. Authorization: Basic XXXXXXXXXXXXXXXXXXXXXX
  107. x-ms-request-root-id: 4f112b3-4c33c20cb1d76dec
  108. x-ms-request-id: |4f112b3-4c33c20cb1d76dec.1.
  109. Request-Id: |4f112b3-4c33c20cb1d76dec.1.1.
  110. Content-Length: 325354
  111. Host: localhost:44636
  112.  
  113.  
  114. Content
  115.  
  116. ----ACI-XFER
  117. Content-Type: text/plain; charset=utf-8
  118. Content-Disposition: form-data; name=filename
  119.  
  120. test1upload.txt
  121. ----ACI-XFER
  122. Content-Type: text/plain; charset=utf-8
  123. Content-Disposition: form-data; name=environment
  124.  
  125. DEV
  126. ----ACI-XFER
  127. Content-Type: text/plain; charset=utf-8
  128. Content-Disposition: form-data; name=multipartfile; filename=test1upload.txt; filename*=utf-8''test1upload.txt
  129.  
  130. 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
  131.  
  132. content.Add(new StringContent(uploadFileRequestDto.TextFile + """ + "rn", encNoBoM, "text/plain"), "multipartfile", uploadFileRequestDto.FileName);
  133.  
  134. content.Add(new StringContent(uploadFileRequestDto.TextFile, encNoBoM, "text/plain"), "multipartfile", uploadFileRequestDto.FileName);
Add Comment
Please, Sign In to add comment