Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.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# HTTPWebRequest查看网站是否可用/凭据失败_C#_Wpf_Proxy_Httpwebrequest - Fatal编程技术网

C# HTTPWebRequest查看网站是否可用/凭据失败

C# HTTPWebRequest查看网站是否可用/凭据失败,c#,wpf,proxy,httpwebrequest,C#,Wpf,Proxy,Httpwebrequest,我在一个公司域网络中。我们有网络限制。 我们无法在网络外pingIP 我必须通过在google.com上发出HTTPWebRequest来检查互联网连接是否正常 我们使用代理进行internet连接,并使用proxy.pac。 如果我不在公司并且直接连接到互联网,该程序应该仍然有效 检查我是否在公司-->使用代理。如果connectet直接-->则不使用代理 我尝试过这一点,但如果我在公司网络,我仍然得到了(错误407身份验证要求),但如果我是connectet direktly,它可以工作 t

我在一个公司域网络中。我们有网络限制。 我们无法在网络外pingIP

我必须通过在google.com上发出HTTPWebRequest来检查互联网连接是否正常

我们使用代理进行internet连接,并使用proxy.pac。 如果我不在公司并且直接连接到互联网,该程序应该仍然有效

检查我是否在公司-->使用代理。如果connectet直接-->则不使用代理

我尝试过这一点,但如果我在公司网络,我仍然得到了(错误407身份验证要求),但如果我是connectet direktly,它可以工作

try
        {
            var uriBuilder = new UriBuilder(_URL);
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uriBuilder.Uri);
            request.Timeout = 1000;
            //request.Accept = "*/*";
            WebProxy proxy = new WebProxy("1**.208.***.***:8080");
            //request.UseDefaultCredentials = true;
            request.Proxy = proxy;
            request.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
            //request.UserAgent = "Foo";
            //request.Accept = "*/*";
            //request.Method = "GET";
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            _PingByURL = response.StatusCode == HttpStatusCode.OK; //_PingByURL is bool.
        }
        catch 
        {

            _PingByURL =false;
        }
我的App.config:

<?xml version="1.0"?>
<configuration>
  <startup>      
      <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>       
  </startup>
  <system.net>
      <defaultProxy enabled ="true" useDefaultCredentials = "true">
          <proxy usesystemdefault ="True" bypassonlocal="True"/>
      </defaultProxy>
  </system.net>
</configuration>

所以我需要正确的证件。如何使用我登录的域中的域凭据


谢谢大家!

PAC url不是您的代理。PAC文件包含有关代理IP和端口的信息。这就是您需要传递给HttpWebRequest对象的内容


此外,还可以传递域凭据,而不是System.Net.CredentialCache.DefaultCredentials

但我如何从pac中得到代理?或者我可以使用默认代理吗?它应该是pac之外的代理。即使我使用代理的ip,它也不起作用。