I have a web api project like below
[HttpPost]
[BasicAuth]
public async Task<byte[]> UploadFileAndOtherParamsAndGetDoc(IFormFile file, string test)
{
return await file.GetFileArray();
}
then I consume web api as below codes
[HttpPost]
public ActionResult DownloadProfilePicture(HttpPostedFileBase file)
{
string boundary = "----------------------------" + DateTime.Now.Ticks.ToString("x");
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri("https://localhost:44387/api/file/UploadFileAndOtherParamsAndGetDoc"));
request.ContentType = "multipart/form-data; boundary=" +
boundary;
request.Method = "POST";
request.KeepAlive = true;
Stream memStream = new System.IO.MemoryStream();
var boundarybytes = System.Text.Encoding.ASCII.GetBytes("\r\n--" + boundary + "\r\n");
var endBoundaryBytes = System.Text.Encoding.ASCII.GetBytes("\r\n--" + boundary + "--");
string formdataTemplate = "\r\n--" + boundary + "\r\nContent-Disposition: form-data; name=\"{0}\";\r\n\r\n{1}";
string headerTemplate = "Content-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"\r\n" + "Content-Type: application/octet-stream\r\n\r\n";
memStream.Write(boundarybytes, 0, boundarybytes.Length);
var header = string.Format(headerTemplate, "file", file.FileName);
var headerbytes = System.Text.Encoding.UTF8.GetBytes(header);
memStream.Write(headerbytes, 0, headerbytes.Length);
byte[] Bytes = new byte[file.InputStream.Length];
file.InputStream.Read(Bytes, 0, Bytes.Length);
memStream.Write(Bytes, 0, Bytes.Length);
memStream.Write(endBoundaryBytes, 0, endBoundaryBytes.Length);
request.ContentLength = memStream.Length;
var username = "fdg";
var password = "dsffsd";
string encoded = Convert.ToBase64String(Encoding.UTF8.GetBytes(username + ":" + password));
if (username != null && password != null) request.Headers.Add("Authorization", "Basic " + encoded);
using (Stream requestStream = request.GetRequestStream())
{
memStream.Position = 0;
byte[] tempBuffer = new byte[memStream.Length];
memStream.Read(tempBuffer, 0, tempBuffer.Length);
memStream.Close();
requestStream.Write(tempBuffer, 0, tempBuffer.Length);
}
byte[] str = null;
using (var response = request.GetResponse() as HttpWebResponse)
{
Stream stream2 = response.GetResponseStream();
StreamReader reader = new StreamReader(stream2);
var reader1 = new BinaryReader(response.GetResponseStream());
str = reader1.ReadBytes(16*1024);
}
return File(str, System.Net.Mime.MediaTypeNames.Application.Octet);
}
And returns unwanted format like "Y3VybCAtWCBQT1NUIFwNCiAgaHR0cHM6Ly9sMjAxNzEtaWZsbWFwLmhjaXNicC5ldTEuaGFuYS5vbmRlbWFuZC5jb20vaHR0cC9FZmxvdy9QTyBcDQogIC1IICdhY2NlcHQ6IGFwcGxpY2F0aW9uL2pzb24nIFwNCiAgLUggJ2F1dGhvcml6YXRpb246IEJhc2ljIFVESXdNREV5TkRBd01qZzZaRkpuVld0WWNESnpOWFk0ZVM5QlAwUW9SeXRMWWxCbFUyaFdiVmx4TTNRPScgXA0KICAtSCAnY2FjaGUtY29udHJvbDogbm8tY2FjaGUnIFwNCiAgLUggJ2NvbnRlbnQtdHlwZTogYXBwbGljYXRpb24vanNvbicgXA0KICAtSCAnZW50aXR5OiBBX1B1cmNoYXNlT3JkZXInIFwNCiAgLUggJ3Bvc3RtYW4tdG9rZW46IGEzNDdjYmMxLWE1MDMtYTRiMi1hNDBmLWQ5ZTNkZDg2YTc5NycgXA0KICAtSCAneC1yZXF1ZXN0ZWQtd2l0aDogWCcgXA0KICAtZCAnew0KICAiQ29tcGFueUNvZGUiOiAiODcwMSIsDQogICJQdXJjaGFzZU9yZGVyVHlwZSI6ICJOQiIsDQogICJTdXBwbGllciI6ICI3MDAwMDAwMDAxIiwNCiAgDQogICJQdXJjaGFzaW5nT3JnYW5pemF0aW9uIjogIjg3MDEiLA0KICAiUHVyY2hhc2luZ0dyb3VwIjogIjg3MSIsDQogICJQdXJjaGFzZU9yZGVyRGF0ZSI6ICIvRGF0ZSgxNjA2MzQ4ODAwMDAwKS8iLA0KICAiRG9jdW1lbnRDdXJyZW5jeSI6ICJUUlkiLA0KICAidG9fUHVyY2hhc2VPcmRlckl0ZW0iOiB7DQogICAgInJlc3VsdHMiOiBbDQogICAgICB7DQogICAgICAgICJQdXJjaGFzZU9yZGVySXRlbVRleHQiOiAiTGFwdG9wIGZyb20gdGhlIGFwaSIsDQogICAgICAgICJQdXJjaGFzZU9yZGVySXRlbUNhdGVnb3J5IjogIjAiLA0KICAgICAgICAiUGxhbnQiOiAiODcwMSIsDQogICAgICAgICJNYXRlcmlhbEdyb3VwIjogIjIyMDEwMSIsDQogICAgICAgICJPcmRlclF1YW50aXR5IjogIjEwIiwNCiAgICAgICAgIlB1cmNoYXNlT3JkZXJRdWFudGl0eVVuaXQiOiAiRUEiLA0KICAgICAgICAiT3JkZXJQcmljZVVuaXQiOiAiRUEiLA0KICAgICAgICAiTmV0UHJpY2VBbW91bnQiOiAiMTAwIiwNCiAgICAgICAgIk5ldFByaWNlUXVhbnRpdHkiOiAiMSIsDQogICAgICAgICJBY2NvdW50QXNzaWdubWVudENhdGVnb3J5IjogIksiLA0KICAgICAgICAiTXVsdGlwbGVBY2N0QXNzZ210RGlzdHJpYnV0aW9uIjogIiIsDQogICAgICAgICJQcm9kdWN0VHlwZSI6ICIxIiwNCg0KICAgICAgICAidG9fQWNjb3VudEFzc2lnbm1lbnQiOiB7DQogICAgICAgICAgInJlc3VsdHMiOiBbDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICJRdWFudGl0eSI6ICIxMCIsDQogICAgICAgICAgICAgICJDb3N0Q2VudGVyIjogIjg3MDEwMTAwMDIiLA0KCSAgICAgICJHTEFjY291bnQiOiAiMDA2MjgwMDUwMSIsDQogICAgICAgICAgICAgICJPcmRlcklEIjogIjIwMDA4MSIsDQogICAgICAgICAgICAgICJXQlNFbGVtZW50IjogIlRSMTAwIg0KICAgICAgICAgICAgfQ0KICAgICAgICAgIF0NCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIF0NCiAgfQ0KfSc="
how can I read/get file with httpwebrequest not httpclient
Thank you all
I used httpclient instead of httpwebrequest. And it is solved.