HttpClient并使用代理-不断获得407

右旋

这是代码:

 HttpClient client = null;
 HttpClientHandler httpClientHandler = new HttpClientHandler()
 {
    Proxy = new WebProxy(string.Format("{0}:{1}", proxyServerSettings.Address, 
    proxyServerSettings.Port),false),
    PreAuthenticate = true,
    UseDefaultCredentials = false,
 };


 this.httpClientHandler.Credentials = new NetworkCredential(proxyServerSettings.UserName, 
                        proxyServerSettings.Password);


 this.client = new HttpClient(this.httpClientHandler);

当我最终这样做时:

HttpResponseMessage httpResponseMessage = this.client.PostAsync(urlToPost, new StringContent(data, Encoding.UTF8, this.mediaType)).Result;

它总是抛出

远程服务器返回错误:(407)需要代理身份验证。

我对我的世界不了解。

当在IE10中配置或如果我改用HttpWebRequest该类时,相同的代理设置就可以正常工作

达里尔

您将代理凭据设置在错误的位置。

httpClientHandler.Credentials是在代理已建立连接之后提供给服务器的凭据如果您弄错了这些,则可能会收到401或403响应。

您需要设置提供给代理的凭据,否则它将首先拒绝将您连接到服务器。您提供给代理的凭据可能与您提供给服务器的凭据不同。如果您弄错了这些,将得到407响应。您得到的是407,因为您根本没有设置这些设置。

// First create a proxy object
var proxy = new WebProxy
{
    Address = new Uri($"http://{proxyHost}:{proxyPort}"),
    BypassProxyOnLocal = false,
    UseDefaultCredentials = false,

    // *** These creds are given to the proxy server, not the web server ***
    Credentials = new NetworkCredential(
        userName: proxyUserName,
        password: proxyPassword)
};

// Now create a client handler which uses that proxy
var httpClientHandler = new HttpClientHandler
{
    Proxy = proxy,
};

// Omit this part if you don't need to authenticate with the web server:
if (needServerAuthentication)
{
    httpClientHandler.PreAuthenticate = true;
    httpClientHandler.UseDefaultCredentials = false;

    // *** These creds are given to the web server, not the proxy server ***
    httpClientHandler.Credentials = new NetworkCredential(
        userName: serverUserName,
        password: serverPassword);
}

// Finally, create the HTTP client object
var client = new HttpClient(handler: httpClientHandler, disposeHandler: true);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我在可移植类库上使用HttpClient获得403

来自分类Dev

检查代理并使用ruby-on-rails获得timout

来自分类Dev

让git / go获得使用代理域

来自分类Dev

使用GUICE注入HttpClient以在Java中获得模拟响应

来自分类Dev

Apache HttpClient 4.3.5设置代理

来自分类Dev

在NodeJS中使用代理获得了“无效协议”

来自分类Dev

使用HTTPClient Gem设置用户代理

来自分类Dev

WCF服务调用返回“ 407必需的代理身份验证”

来自分类Dev

TextureView不断获得SIGSEGV 11

来自分类Dev

使用容器docker作为CF应用程序的代理以获得公共IP

来自分类Dev

Python使用HTTPS代理的API请求API请求获得407 Proxy Authentication Required

来自分类Dev

通过公司代理的HTTP 407 CasperJS

来自分类Dev

如何获得代理列表以正确使用硒?(Python)

来自分类Dev

HttpClient不断收到错误请求

来自分类Dev

如何使用Selenium从网站上获得不断变化的价值

来自分类Dev

尝试使用Sidecar代理与Web进行领事连接时,获得错误连接被拒绝

来自分类Dev

如何修复botFramework的代理407错误?

来自分类Dev

407代理验证错误-Unirest Java 8

来自分类Dev

如何设置HttpClient代理?

来自分类Dev

使用Wily代理时Apache HttpClient引发异常

来自分类Dev

单元测试apache http客户端代理407

来自分类Dev

TextureView不断获得SIGSEGV 11

来自分类Dev

httpclient默认会使用系统代理(clojure)吗?

来自分类Dev

如何调试使用JVMTI代理设置断点的Java应用(无法获得必要的JVMTI功能)

来自分类Dev

我无法使用浏览器的简单代理服务器获得http响应

来自分类Dev

API-HttpResponseMessage:需要(407)代理身份验证

来自分类Dev

AngularJS“需要407代理身份验证”

来自分类Dev

Google Drive API 代理异常 407

来自分类Dev

使用 httpclient 4.0.1 添加用户代理

Related 相关文章

  1. 1

    我在可移植类库上使用HttpClient获得403

  2. 2

    检查代理并使用ruby-on-rails获得timout

  3. 3

    让git / go获得使用代理域

  4. 4

    使用GUICE注入HttpClient以在Java中获得模拟响应

  5. 5

    Apache HttpClient 4.3.5设置代理

  6. 6

    在NodeJS中使用代理获得了“无效协议”

  7. 7

    使用HTTPClient Gem设置用户代理

  8. 8

    WCF服务调用返回“ 407必需的代理身份验证”

  9. 9

    TextureView不断获得SIGSEGV 11

  10. 10

    使用容器docker作为CF应用程序的代理以获得公共IP

  11. 11

    Python使用HTTPS代理的API请求API请求获得407 Proxy Authentication Required

  12. 12

    通过公司代理的HTTP 407 CasperJS

  13. 13

    如何获得代理列表以正确使用硒?(Python)

  14. 14

    HttpClient不断收到错误请求

  15. 15

    如何使用Selenium从网站上获得不断变化的价值

  16. 16

    尝试使用Sidecar代理与Web进行领事连接时,获得错误连接被拒绝

  17. 17

    如何修复botFramework的代理407错误?

  18. 18

    407代理验证错误-Unirest Java 8

  19. 19

    如何设置HttpClient代理?

  20. 20

    使用Wily代理时Apache HttpClient引发异常

  21. 21

    单元测试apache http客户端代理407

  22. 22

    TextureView不断获得SIGSEGV 11

  23. 23

    httpclient默认会使用系统代理(clojure)吗?

  24. 24

    如何调试使用JVMTI代理设置断点的Java应用(无法获得必要的JVMTI功能)

  25. 25

    我无法使用浏览器的简单代理服务器获得http响应

  26. 26

    API-HttpResponseMessage:需要(407)代理身份验证

  27. 27

    AngularJS“需要407代理身份验证”

  28. 28

    Google Drive API 代理异常 407

  29. 29

    使用 httpclient 4.0.1 添加用户代理

热门标签

归档