在C#中保持http连接存活?

如何在C#中保持连接存活? 我做得不对。 我想创建一个HttpWebRequest obj并使用它来转到我需要的任何URL? 我没有看到一种方法来访问除了HttpWebRequest.Create静态方法之外的URL。

如何创建连接,保持连接,浏览页面上的多个页面/媒体并支持代理? (我听说代理很容易,支持几乎是标准的吗?) – 编辑 – 很好的答案。 我如何申请第二个url?

{ HttpWebRequest WebRequestObject = (HttpWebRequest)HttpWebRequest.Create("http://google.com"); WebRequestObject.KeepAlive = true; //do stuff WebRequestObject.Something("http://sofzh.miximages.com/c%23/logo.gif"); } 

你试过HttpWebRequest.KeepAlive属性吗? 它设置适当的Keep-Alive HTTP标头并保持连接。 (当然,远程Web服务器也必须支持和启用此function)。

MSDN上的HttpWebRequest.KeepAlive文档声明默认情况下HTTP1.1连接设置为true ,因此我怀疑您尝试联系的服务器不允许连接持久性。

代理自动使用,其设置取自您的系统(读取Internet Explorer)设置。 也可以通过HttpWebRequest.Proxy属性或通过调整应用程序配置文件来覆盖代理设置(请参阅http://msdn.microsoft.com/en-us/library/kd3cf2ex.aspx )。

设置HttpWebRequest.KeepAlive属性True .NET将负责其余部分。 它只是数据库连接池。 透明地工作。

您可以自由地创建新连接.NET将确定您正在连接已连接的服务器并将使用它。 还取决于你的Net.ServicePointManager.DefaultConnectionLimit号码,它将建立新的连接( 如果你进行multithreading处理 )。

您可以将HttpWebRequest.KeepAlive属性设置为true。

对于Proxies,还有一个属性: HttpWebRequest.Proxy

当HttpWebRequest.KeepAlive = true不足以让它保持活着时,我遇到了类似的问题。 只有在我设置request.UnsafeAuthenticatedConnectionSharing = true和ServicePointManager.MaxServicePointIdleTime = 100000; //避免0或低值后,连接才会保持打开状态

如果您使用的是Http 1.1,则不应使用Keep-Alive,因为连接是隐式保持活动的。

可以设置HttpWebRequest.KeepAlive属性,但是如果您要发送Http 1.1请求,除非将其设置为Close,否则它实际上不会设置标头。

这是另一个有更多信息的问题: 默认情况下,HTTP / 1.1请求是否隐式保持活动状态?