Tag: proxy

如何将原始HTTP响应解析为HttpListenerResponse?

如果我将原始HTTP响应作为字符串: HTTP / 1.1 200好的 日期:2010年5月11日星期二07:28:30 GMT 过期:-1 Cache-Control:private,max-age = 0 Content-Type:text / html; 字符集= UTF-8 服务器:gws X-XSS-Protection:1; 模式=块 连接:关闭 … 有没有一种简单的方法可以将它解析为HttpListenerResponse对象? 或者至少是某种.NET对象,所以我不必使用原始响应。 我目前正在做的是提取标题键/值对并在HttpListenerResponse上设置它们。 但是有些头文件无法设置,然后我必须剪切响应的主体并将其写入OutputStream。 但身体可以被gzipped,或者它可能是一个图像,我还无法工作。 并且一些响应在任何地方都包含随机字符,这看起来像编码问题。 这很麻烦。 我正在获得原始响应,因为我正在使用SOCKS发送HTTP请求。 我正在处理的程序基本上是一个HTTP代理,它可以通过SOCKS代理路由请求,就像Privoxy那样。

可移植类库上的WebProxy

我正在构建一个可移植类库项目。 使用HttpClient类(从NuGet包安装)。 现在。 我想使用Proxy通过将HttpClientHandler传递给它构造函数来创建HttpClient(HttpClientHandler有一个Proxy属性,我们将为它分配一个WebProxy实例)。 问题是Portable Class Library不支持WebProxy类。 它只有IWebProxy interace。 我搜索了谷歌,NuGet包,但我找不到任何解决方案。 请告诉我。 我该如何解决这个问题(或者使用代理来制作HttpClient的其他方法)

在具有不同根相对路径的代理后面运行ASP.NET MVC应用程序

我在代理后面运行的ASP.NET MVC应用程序中遇到问题。 我们的IIS应用程序根路径例如是http:// server / MyApp / 意味着所有使用应用程序根目录的URL(“〜/”,Url.Action(“MyAction”,“MyController”))都被解析为“/ MyApp” 现在我们在代理服务器后面运行,它转发所有请求,但要求您通过以下URL访问应用程序:“/ Secury / Proxy / RubbishUrl / MyApp” 因为代理URL仅在客户端上可用,所以我想到创建一个带有路径前缀的cookie,并在服务器上的每个生成的URL之前插入它。 现在的问题是,代码中修改每个已解析/发送到客户端的URL(资源,控制器操作,图像等)的最佳位置是什么? 应用程序中的每个路径都使用MVC方法(Url.Content,Url.Action等)解析。 更新:不再主动寻找答案(尽管仍然对正确的解决方案感兴趣) 大多数情况下,代理会进行自己的URL转换,但在这种情况下,代理服务器会忽略以JSON格式传输的路径,并对它们进行处理。 我现在的’解决方案’就是不在JSON中传递路径,而是: 在JSON请求中使用正确的ID和值 在HTML中的URL中创建模板(已正确解析), 使用JSON请求中的值替换URL模板中的ID和值 这种方法实际上是一种非常“清洁”的方式IMO然后传递URL。

c#HttpWebRequest不向代理服务器发送默认凭据

我在将请求传递给公共网络之前使用squid代理服务器来validation客户端。 我没有设置HttpWebRequest.Proxy对象,所以我假设Web请求将采用默认窗口凭据并传递给代理服务器。 我也在squid代理中添加了一个用户条目,但是在发出请求时出现以下错误: (407) Proxy Authentication Required. 在鱿鱼日志中,我得到了这个: TCP_DENIED/407 3722 CONNECT 我在App.config中插入了以下块 validation使用squid注册的用户凭据与我的Windows用户凭据之间是否存在差异。 我尝试通过浏览器打开一个公共网站,当请求通过代理服务器(我在Internet选项下设置)时提示凭据,在输入Windows凭据后我能够访问该网站。 此外,我通过Fiddler(一种检查网络流量的工具)检查了对该代理服务器的请求没有代理授权标头。 任何人都可以检查并判断我错过了什么或者我犯了什么错误。

如何在“AmazonS3”对象中关闭自动代理检测?

在应用程序启动后第一次使用AmazonS3对象时,会有大约14秒的大延迟。 所有后续呼叫都不存在这种大的时间延迟。 我之前遇到过这个与其他HTTP相关的类的确切延迟问题,并且当有问题的类试图确定本地机器的代理设置以及是否使用它们时,会导致它。 要阻止WebClient发生这种情况,请设置WebClient.Proxy = null; 并且它不会尝试自动检测代理设置,但我无法弄清楚如何禁用AmazonS3对象的代理检测function。 我特意尝试将ProxyHost设置为null : _s3Client = AWSClientFactory.CreateAmazonS3Client(awsAccessKey, awsSecretAccessKey, new AmazonS3Config { ProxyHost = null }); 哪个没用。 我们目前正在使用Amazon .NET SDK“v1.3.17.0”。 有没有办法关闭代理检测?

通过COM包装器从托管代码调用COM可见托管组件

我有一个第三方组件,让我们说FIPreviewHandler来处理预览,它实现了IPreviewHandler。 FIPreviewHandler实现为托管组件,并通过互操作使用IPreviewHandler接口和相关接口。 FIPreviewHandler使用regasm.exe作为COM注册。 我有一个客户端应用程序也是托管的。 我想在我的应用程序中创建一个FIPreviewHandler实例作为COM组件。 我有一个interop程序集,定义IPreviewHandler和相关的接口。 当我使用Activator.CreateInstance()创建FIPreviewHandler的实例时,对GetTypeByCLSID()返回的类型使用FIPreviewHandler的正确CLSID,它返回一个托管实例,因为它具有可用的实际程序集,并跳过COM 。 当我尝试将此实例作为任何接口(例如IPreviewHandler)进行QI /转换时,它返回null,因为它作为托管对象加载,尽管FIPreviewHandler实现的IPreviewHandler接口与我在interop中的接口相同,但它在一个不同的命名空间/程序集中,因此为null。 如果要返回一个COM实例/ RCW(System .__ ComObject),它将不会考虑名称空间,并且会被强制转换,并返回一个有效的实例。 FIPreviewHandler是一个32位组件,在64位Win7机器上,如果我将我的客户端应用程序编译为“任何CPU”,Activator.CreateInstance()将返回一个COM实例/ RCW(System .__ ComObject),因为它会找到64位实现FIPreviewHandler,因此返回一个代理。 在这种情况下,我的应用程序工作正常。 但是当我为x86编译它时,它获得32位实现,并返回实际托管类的托管实例,而不是COM实例,因此失败。 我不能使用FIPreviewHandler程序集中定义的接口,因为我必须为IPreviewHandler编写通用客户端,我的应用程序将与任何实现IPreviewHandler的组件一起使用,这对于基于C ++的客户端访问FIPreviewHandler作为COM对象非常有用,但是失败了对于托管客户。 我希望我有意义,我会非常感激任何帮助。

C#结合了GeckoFX + Tor.NET库

我正在尝试将GeckoFx库和Tor.NET库结合起来。 在我的代码中,我都准备使用tor网络, ClientCreateParams createParameters = new ClientCreateParams(); createParameters.ConfigurationFile = ConfigurationManager.AppSettings[“torConfigurationFile”]; createParameters.ControlPassword = ConfigurationManager.AppSettings[“torControlPassword”]; createParameters.ControlPort = Convert.ToInt32(ConfigurationManager.AppSettings[“torControlPort”]); createParameters.DefaultConfigurationFile = ConfigurationManager.AppSettings[“torDefaultConfigurationFile”]; createParameters.Path = Path.Combine(root, ConfigurationManager.AppSettings[“torPath”]); createParameters.SetConfig(ConfigurationNames.AvoidDiskWrites, true); createParameters.SetConfig(ConfigurationNames.GeoIPFile, Path.Combine(root, @”Tor\Data\Tor\geoip”)); createParameters.SetConfig(ConfigurationNames.GeoIPv6File, Path.Combine(root, @”Tor\Data\Tor\geoip6″)); client = Client.Create(createParameters); WebBrowser1是一个简单的浏览器,它适用于Tor设置。 但浏览器是GeckoFx,它不起作用。 webBrowser1.Navigate(“https://duckduckgo.com/?q=my+ip&t=h_&ia=answer”); browser.Navigate(“https://duckduckgo.com/?q=my+ip&t=h_&ia=answer”); 如你所见,ip应该像左边的控件一样。 您可以从此处下载并测试完整项目。 WinForms项目只是从解决方案中运行“Gecko”项目。 知道如何设置GeckoFx使用Tor网络吗? 或者我可能需要以某种方式设置GeckoFx来使用代理? //GeckoPreferences.User[“network.proxy.type”] = 1; //GeckoPreferences.User[“network.proxy.socks”] = “127.0.0.1”; //GeckoPreferences.User[“network.proxy.socks_port”] = 9150; //GeckoPreferences.User[“network.proxy.socks_version”] = 5; […]

如何使用WebProxy通过网络?

如果我想使用webProxy绕过像192.168.1.0/24这样的网络有什么办法吗? WebProxy proxy = new WebProxy(); proxy.ByPassList = ???

为什么ReferenceEquals和==运算符的行为与Equals不同

我有一个实体不会覆盖任何相等的成员\运算符。 比较它们的两个代理(我从Nhibernate session得到它们)时,结果根据相等方法改变: ReferenceEquals(第一,第二) – false。 第一个==第二个 – 假 等于(第一,第二) – 是的。 这更加奇怪,因为它们都存在于同一个会话上下文中并且根据Nhibernate文档 : NHibernate只保证单个ISession内的身份(a == b,Equals()的默认实现!) 和: 该实例当前与持久性上下文相关联。 它具有持久标识(主键值),也许还有数据库中的相应行。 对于特定的持久化上下文,NHibernate保证持久标识等同于CLR标识(对象的内存中位置)。 那么为什么不是所有的等式方法都返回真实呢? 更新: 我以这种方式获得了enteties,查询ChildEntity的会话并获得带有Linq select的Parents Entities,类似于: var childs = session.Query(); var parents = childs.Select(x => x.ParentEntity).ToList();

C# – 通过HTTP代理将文件上传到FTP

我正在尝试编写一个C#程序,将文件上传到通过代理服务器的FTP。 这是我写的代码: public new bool Upload(string localFilePath, string pathUpload) { Stream FStream = null; bool retval = false; FileStream FlStream; try { FtpWebRequest FtpRequest = (FtpWebRequest) FtpWebRequest.Create(Uri + pathUpload); FtpRequest.Credentials = new NetworkCredential(User, Password); if (ProxyAddress != “” && ProxyAddress != null) { WebProxy ftpProxy = new WebProxy(); ftpProxy.Address = new System.Uri(ProxyAddress); ftpProxy.Credentials = new […]