public class WebClientEx : WebClient
{
protected override WebRequest GetWebRequest(Uri address)
{
HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(address);
request.ReadWriteTimeout = 2147483647;
request.Timeout = 2147483647;
request.SendChunked = true;
request.AllowWriteStreamBuffering = false;
request.ContentType = "application/octet-stream";
// request.exnc = Encoding.UTF8;
return request;
}
}
WebClientEx wc = new WebClientEx();
wc.UploadFileAsync(new Uri(@"https://www.exmaple.com/API/FileOperations/UploadFile.svc/UploadFileStream"), "POST", file);
我的问题是在URL中使用HTTPS,文件流速度很慢。与HTTP一样,它非常快。
答案 0 :(得分:0)
考虑到HTTPS是一个安全(意味着加密)的套接字,而HTTP是一个未加密的连接。根据使用的HTTPS加密算法,它可能会降低文件传输的性能。这是由于需要加密和解密客户端和服务器之间的所有流量。如果您有一个大文件,传输数据需要花费很长时间才能在一侧进行加密,然后在另一侧进行解密。还需要使用安全插座进行密钥生成和交换,尽管这不是导致性能下降的主要原因。
进一步阅读:加密如何影响绩效(https://superuser.com/questions/173588/data-encryption-and-internet-speed)。
最终说明:如果您正在考虑传输加密文件,请尝试使用SFTP(http://www.jcraft.com/jsch/examples/Sftp.java.html)。