File 通过HttpWebRequest或HttpClient上载大文件不会写入文件的全部内容

File 通过HttpWebRequest或HttpClient上载大文件不会写入文件的全部内容,file,httpwebrequest,httpclient,File,Httpwebrequest,Httpclient,我正在尝试向mvc rest api发送一个大文件(大约40MB到50MB)的http post。 我能够使用REST客户端实现这一点,但在使用AddFile时,它总是添加不需要的起始文本和尾随文本 我后来尝试了HttpWebRequest和HttpClient,但它们都未能编写完整的文件流 我已经尝试了这个网站上的所有例子,但没有任何效果 HttpWebRequest wr = (HttpWebRequest)WebRequest.Create(requestUrl); wr

我正在尝试向mvc rest api发送一个大文件(大约40MB到50MB)的http post。 我能够使用REST客户端实现这一点,但在使用AddFile时,它总是添加不需要的起始文本和尾随文本

我后来尝试了HttpWebRequest和HttpClient,但它们都未能编写完整的文件流

我已经尝试了这个网站上的所有例子,但没有任何效果

 HttpWebRequest wr = (HttpWebRequest)WebRequest.Create(requestUrl);
        wr.ContentType = "application/octet-stream";
        wr.Method = "POST";
        wr.KeepAlive = true;

        Stream rs = wr.GetRequestStream();
        FileStream fileStream = new FileStream(xmlConfigurationFilePath, FileMode.Open, FileAccess.Read);
        byte[] buffer = new byte[1024];
        int bytesRead = 0;
        while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0)
        {
            rs.Write(buffer, 0, bytesRead);
        }
        fileStream.Close();


        rs.Flush();

        WebResponse wresp = null;
        try
        {
            wresp = wr.GetResponse();
            Stream stream2 = wresp.GetResponseStream();
            StreamReader reader2 = new StreamReader(stream2);

        }
        catch (Exception ex)
        {
            if (wresp != null)
            {
                wresp.Close();
                wresp = null;
            }
        }
        finally
        {
            wr = null;
        }

不确定您的场景中问题的原因,但如果这有助于检查我在本文中的自我回答问题,以了解如何检查Web API post方法上发生的情况: