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

时间:2013-05-31 16:33:07

标签: file httpwebrequest httpclient

我正在尝试将一个大文件(大约40 MB到50 MB)的http发布到mvc rest api。 我能够使用RestSharp restclient实现这一点,但在使用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;
        }

1 个答案:

答案 0 :(得分:0)

在您的方案中不确定问题的原因,但是如果它有助于在本文中检查我自己回答的问题,以了解如何检查Web API帖子方法上发生的事情:{{3 }}