Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 允许每个实例使用一个代理的最佳WebBrowser控件是什么?_C#_.net_Webbrowser Control - Fatal编程技术网

C# 允许每个实例使用一个代理的最佳WebBrowser控件是什么?

C# 允许每个实例使用一个代理的最佳WebBrowser控件是什么?,c#,.net,webbrowser-control,C#,.net,Webbrowser Control,我正在制作一个多线程[workers]应用程序。每个线程都应该有自己的非GUI WebBrowser,它可以导航到网页并将数据写入字段,然后单击按钮。我还需要每个WebBrowser都有自己的代理。我尝试了经典的Windows.Forms.WebBrowser,但我被代理部分卡住了,因为它取决于IE全局设置,而在我的情况下,这是行不通的。欢迎提出任何建议 注意:我曾尝试通过HttpWebRequest/Response进行此操作,但它永远不会工作,因为要传递到页面的数据包含一个名为[ab_tes

我正在制作一个多线程[workers]应用程序。每个线程都应该有自己的非GUI WebBrowser,它可以导航到网页并将数据写入字段,然后单击按钮。我还需要每个WebBrowser都有自己的代理。我尝试了经典的Windows.Forms.WebBrowser,但我被代理部分卡住了,因为它取决于IE全局设置,而在我的情况下,这是行不通的。欢迎提出任何建议

注意:我曾尝试通过HttpWebRequest/Response进行此操作,但它永远不会工作,因为要传递到页面的数据包含一个名为[ab_test_data]的字段,该字段的值来自javascript代码,该代码根据ab测试计算值,我甚至不完全理解。所以WebBrowser是我最好的解决方案,除非有人告诉我如何将计算ab测试数据的Javascript代码转换为C代码。我试图访问的页面使用的算法非常复杂

注2:ab_测试_数据值取决于无法在httpWebRequest/Response上模拟的Window.Event和Timestamp

注3:我试过Gecko,但它不会让我对网页做任何事情,除非GeckoWebBrowser在表单上绘制(我不想要)。 欢迎任何解决方案

编辑:如果您知道任何WebBrowser在任何不同的语言(可能是Java)中都能像我所希望的那样工作,我很想知道


提前感谢。

使用

作为一个可能有帮助的问题,我想知道为什么浏览器不允许每个(比如)窗口/选项卡使用代理?我认为这在很大程度上是因为在开发时间方面缺乏实用性

这也可能是因为浏览器[大概]有集中的引擎,用于web请求和缓存等。。。也许,允许每个窗口和/或选项卡使用代理将从根本上改变现代浏览器的设计,或对性能产生负面影响。我真的不知道。为了进一步说明这一点,考虑诸如隐姓埋名模式和私人浏览之类的事情。在这些情况下,浏览器至少在概念上为每个窗口创建了单独的缓存……但我仍然打赌一个匿名窗口和一个标准窗口(在Chrome中)使用相同的底层web请求引擎

现在有很多人想要JavaScript和DOM解析器和解释器。像和这样的项目正在发挥作用,但似乎没有统一的标准解决方案;至少没有一款具有web浏览器的简单性

[下面的咆哮]…

不幸的是,像Jint和Htmlagibility这样的项目令人担忧。首先,它们不是IE、Chrome、Safari或FireFox。你不太清楚自己陷入了什么境地。例如,您知道,在Chrome页面中,xyz.com可以完美地加载和渲染。您可以启动FireFox,看到可能与其他浏览器不太一样,以此类推。但是,有了这些库,如果不是所有的东西都正常工作,你真的不知道该怎么办(没有视觉显示来进行快速检查)。另外,谁知道他们的发展速度。他们能跟上HTML5吗?他们是否落后于主流浏览器?性能如何?更重要的是,浏览器已经具备了缓存和性能增强等功能,我怀疑您在单个库中是否能够获得这些功能

当然,最好的浏览器控件是:

IWebBrowser browser = new IE();
IWebBrowser browser = new Chrome();
IWebBrowser browser = new Safari();
IWebBrowser browser = new FireFox();
不幸的是,我认为这是一个梦想。首先,如果您想加载带有这些的插件,该怎么办?用户配置文件、用户登录等等呢?我想我们大多数人只是想要浏览器的肌肉而不需要这些额外的东西


我真的希望你能找到一个好的Chrome解决方案。我不知道你在FireFox领域会有什么运气——也许你能让我们保持更新?这些解决方案发展得如此之快——在今天之前,我从未听说过CefSharp或WebKit.NET,几个月前我也在寻找同样的东西(Chrome和/或FireFox.NET浏览器)供自己使用。如果有很多人聚在一起,制作一个标准界面,然后每个公司都按照规范构建嵌入式浏览器,那就太好了。希望如此。

我可以将文本写入字段并单击不可见的WebKit浏览器上的按钮吗?我不这么认为。正如我提到的,我需要浏览器是不可见的,因为我将使用许多浏览器,每个线程上一个。当我尝试使用Windows.Forms.WebBrowser时,我使用“new WebBrowser()”创建对象,但从未将其绘制到窗体。我需要这样。请仔细阅读我的问题。我希望我能使用HttpWebRequest,但ABTesting让我无法这么做。因为一旦他提交,它就会在客户端浏览器中生成。它甚至取决于Window.Event和浏览器时间戳,没有浏览器我无法获得这些信息。HttpWebRequest不允许我这样做。@erinus-有什么理由(除了性能)不使用不可见浏览器吗?Webkit.Net不能,我只是尝试了一下。它甚至不会在未绘制时导航。Windows.Forms.WebBrowser可以。我找不到任何文档。我甚至不能将他们的示例项目转换为VS2010。CefSharp和WebKit.NET之间有什么区别?难道Chrome(因此CefSharp)没有使用WebKit吗?我想说的是速度和功能。由于某些原因,Webkit.NET似乎比Webkit本身慢得多,而CefSharp的速度接近Chrome,这可能与Chrome使用V8 For JS有关。CefSharp是一款全新的产品,它已经具备了很多WebKit.NET所没有的功能。例如RunScript、资源负载拦截和将.Net对象绑定到DOM中的能力。所有这些都表明,CefSharp仍处于α级阶段,WebKit.NET希望有一个更稳定的API和产品。显然我有偏见;-)链接的存储库()已经有一段时间不活动了——此时可以找到活动的开发,这是一个非常重要的问题。Chrome终于得到了足够的重视,可能会有一些新的.NET垃圾桶