C# 如何优化此HTTP连接?

C# 如何优化此HTTP连接?,c#,.net,http,optimization,C#,.net,Http,Optimization,我是C#编程的新手,我试图了解如何优化这段代码,它总是被调用到一个线程中,以便从IP摄像头抓取图像(快照)。我正在尝试进行一些优化,以加快HTTP请求的速度,但我看不出如何以及在何处进行操作。我可以问一下专家们是否有办法得到这个结果吗?多谢各位 private Image GetImage() { HttpWebRequest req = null; Image img = null; HttpWebResponse res = null;

我是C#编程的新手,我试图了解如何优化这段代码,它总是被调用到一个线程中,以便从IP摄像头抓取图像(快照)。我正在尝试进行一些优化,以加快HTTP请求的速度,但我看不出如何以及在何处进行操作。我可以问一下专家们是否有办法得到这个结果吗?多谢各位

private Image GetImage()
{

        HttpWebRequest req = null;
        Image img = null;
        HttpWebResponse res = null;

        try
        {
            req = WebRequest.Create(_httpCommand) as HttpWebRequest;
            req.Method = "GET";
            req.PreAuthenticate = true;
            req.AllowWriteStreamBuffering = true;
            req.Credentials = new NetworkCredential(_user, _pwd);
            res = req.GetResponse() as HttpWebResponse;

            using (Stream rs = res.GetResponseStream())
            {
                img = new Bitmap(rs);
            }
        }
        catch (Exception e) {
            _status = false; //<<------------------Signaling the FAILURE status! ---

            if (img != null)
                img.Dispose(); //<< for ------GC--------------

            //insert in LOG
            Log logItem = new Log(DateTime.Now, e.Message);
            AddLogItem(logItem);
        }

        return img;
}
private Image GetImage()
{
HttpWebRequest req=null;
图像img=null;
HttpWebResponse res=null;
尝试
{
req=WebRequest.Create(_httpCommand)作为HttpWebRequest;
req.Method=“GET”;
req.PreAuthenticate=true;
req.AllowWriteStreamBuffering=true;
请求凭证=新的网络凭证(_用户,_pwd);
res=req.GetResponse()作为HttpWebResponse;
使用(Stream rs=res.GetResponseStream())
{
img=新位图(rs);
}
}
捕获(例外e){

_status=false;//我记得,
HttpWebRequest
将尝试自动确定代理设置,这需要时间

req.Proxy = GlobalProxySelection.GetEmptyWebProxy();
告诉它不要使用任何代理,因此将跳过对正确设置的搜索


我记得,
HttpWebRequest
将尝试自动确定代理设置,这需要时间

req.Proxy = GlobalProxySelection.GetEmptyWebProxy();
告诉它不要使用任何代理,因此将跳过对正确设置的搜索


我记得,
HttpWebRequest
将尝试自动确定代理设置,这需要时间

req.Proxy = GlobalProxySelection.GetEmptyWebProxy();
告诉它不要使用任何代理,因此将跳过对正确设置的搜索


我记得,
HttpWebRequest
将尝试自动确定代理设置,这需要时间

req.Proxy = GlobalProxySelection.GetEmptyWebProxy();
告诉它不要使用任何代理,因此将跳过对正确设置的搜索


您可以从我在这里看到的内容中缓存网络凭据。除此之外……它必须是http请求吗?具有稳定数据流的实际TCP连接在性能方面可能要好得多这里使用的最重要功能是
。KeepAlive=true
@EricLaw如果您确实知道这一点,您应该删除cAndreasMüller:默认情况下应该是正确的。OP没有提供任何关于他看到的时间的信息,也没有提供任何来自客户端或服务器的标题,因此这个问题的状态不太好,无法得到好的答案。你可以从我的可以在这里看到。除此之外……它必须是http请求吗?一个具有稳定数据流的实际TCP连接在性能方面可能要好得多。这里使用的最重要功能是
。KeepAlive=true
@EricLaw如果你确实知道这一点,你应该删除注释并将其作为一个答案。根据这似乎是合理的。@AndreasMüller:默认情况下应该是正确的。OP没有提供任何关于他所看到的时间的信息,也没有提供任何来自客户端或服务器的标题,因此问题的状态不太好,无法得到好的答案。你可以从我在这里看到的内容中缓存网络凭据。除此之外……它必须是http请求?一个实际的TCP连接,有一个稳定的数据流可供读取,在性能方面可能要好得多。这里要使用的最重要的功能是
。KeepAlive=true
@EricLaw如果你知道这一点,你应该删除注释并将其作为一个答案。从它的名称来看,这似乎是合理的。@AndreasMüller:应该是这样的默认情况下为true。OP没有提供有关他看到的时间的任何信息,也没有提供来自客户端或服务器的任何头,因此问题的状态并不好,无法得到正确的答案。您可以从我在此处看到的内容缓存网络凭据。除此之外……它必须是http请求吗?具有稳定连接的实际TCP连接要读取的流在性能方面可能要好得多这里使用的最重要的功能是
。KeepAlive=true
@EricLaw如果你知道这一点,你应该删除评论并将其作为一个答案。从它的名称来看,这似乎是合理的。@AndreasMüller:默认情况下应该是正确的。OP没有提供任何信息他不知道自己看到的是什么时间,也不知道客户机或服务器的任何标题,所以这个问题的状态并不好,无法得到好的答案。