C# 我可以使用web文件作为源,使用流媒体将文件上载到web API吗?

C# 我可以使用web文件作为源,使用流媒体将文件上载到web API吗?,c#,file-upload,httpwebrequest,download,C#,File Upload,Httpwebrequest,Download,在C#中,不必使用httpwebrequest从web下载文件,而是将此文件保存到某个位置,然后使用POST将文件作为参数之一上载到web服务 我是否可以从httpwebresponse打开一个读卡器流,然后将其流到http POST中?有人可以发布任何代码来演示如何操作吗 换句话说,我试图避免先保存到磁盘 谢谢诸如此类的东西应该可以做到: HttpWebRequest downloadRequest = WebRequest.Create(downloadUri) as HttpWebRequ

在C#中,不必使用httpwebrequest从web下载文件,而是将此文件保存到某个位置,然后使用POST将文件作为参数之一上载到web服务

我是否可以从httpwebresponse打开一个读卡器流,然后将其流到http POST中?有人可以发布任何代码来演示如何操作吗

换句话说,我试图避免先保存到磁盘


谢谢

诸如此类的东西应该可以做到:

HttpWebRequest downloadRequest = WebRequest.Create(downloadUri) as HttpWebRequest;
using(HttpWebResponse downloadResponse = downloadRequest.GetResponse() as HttpWebResponse)
{
    HttpWebRequest uploadRequest = new HttpWebRequest(uploadUri);
    uploadRequest.Method = "POST";
    uploadRequest.ContentLength = downloadResponse.ContentLength;
    using (Stream downloadStream = downloadResponse.GetResponseStream())
    using (Stream uploadStream = uploadRequest.GetRequestStream())
    {
        byte[] buffer = new byte[4096];
        int totalBytes = 0;
        while(totalBytes < downloadResponse.ContentLength)
        {
            int nBytes = downloadStream.Read(buffer, 0, buffer.Length);
            uploadStream.Write(buffer, 0, nBytes);
            totalBytes += nRead;
        }
    }
    HttpWebResponse uploadResponse = uploadRequest.GetResponse() as HttpWebResponse;
    uploadResponse.Close();
}
HttpWebRequest downloadRequest=WebRequest.Create(downloadUri)为HttpWebRequest;
使用(HttpWebResponse downloadResponse=downloadRequest.GetResponse()作为HttpWebResponse)
{
HttpWebRequest uploadRequest=新的HttpWebRequest(uploadUri);
uploadRequest.Method=“POST”;
uploadRequest.ContentLength=downloadResponse.ContentLength;
使用(Stream downloadStream=downloadsresponse.GetResponseStream())
使用(Stream uploadStream=uploadRequest.GetRequestStream())
{
字节[]缓冲区=新字节[4096];
int totalBytes=0;
while(totalBytes

(未经测试的代码)

Wow…我会在回家后试用,然后更新…非常感谢Hey Thomas-回到这里-我注意到如果我针对的是服务器未提供ContentLength的页面(例如downloadResponse.ContentLength),我会遇到问题。我似乎得到了“System.NotSupportedException:此流不支持seek操作..”。关于如何解决这个问题,这里有什么想法吗?您根据哪条指令得到这个例外?