.net core 2.0代理请求总是导致http 407(需要代理身份验证)

2024-05-13

我正在尝试通过 .net core 2.0 Web 应用程序中的 WebProxy 发出 HTTP 请求。我得到的代码在.net框架中运行良好,所以我知道(相信)这不是环境问题。我也尝试使用两者来发出请求HttpWebRequest and HttpClient但这两种机制总是会导致 .net core 中出现 407(需要代理身份验证)http 错误。就好像在 .net core 中我提供的凭据总是被忽略。

这是我一直在使用的代码:

public void Test() 
{
    var cred = new NetworkCredential("xxxxx", "yyyyyy");
    var proxyURI = new Uri("http://xxx.xxx.xxx.xxx:80");
    var destinationURI = new Uri("http://www.bbc.co.uk");
    WebProxy proxy = new WebProxy(proxyURI, false) { UseDefaultCredentials = false, Credentials = cred };

    MakeProxyRequestViaHttpWebRequest(proxy, destinationURI);
    MakeProxyRequestViaHttpClient(proxy, destinationURI);
}

private void MakeProxyRequestViaHttpClient(WebProxy proxy, Uri destination)
{
    HttpClientHandler handler = new HttpClientHandler()
    {
        Proxy = proxy,
        UseProxy = true,
        PreAuthenticate = true,
        UseDefaultCredentials = false
    };

    HttpClient client = new HttpClient(handler);
    HttpResponseMessage response = client.GetAsync(destination).Result;
    if (response.IsSuccessStatusCode)
    {
        HttpContent content = response.Content;
        string htmlData = content.ReadAsStringAsync().Result;
    }
    else
    {
        HttpStatusCode code = response.StatusCode;
    }
}

private void MakeProxyRequestViaHttpWebRequest(WebProxy proxy, Uri destination)
{
    HttpWebRequest req = HttpWebRequest.Create(destination) as HttpWebRequest;
    req.UseDefaultCredentials = false;
    req.Proxy = proxy;
    req.PreAuthenticate = true;

    using (WebResponse response = req.GetResponse())
    {
        using (StreamReader responseStream = new StreamReader(response.GetResponseStream()))
        {
            string htmlData = responseStream.ReadToEnd();
        }
    }
}

我在 .net core 中尝试了以下操作,但结果始终是 407:

  1. 在控制台应用程序中运行代码
  2. 实现 IWebProxy 并将其用作代理
  3. 为 WebProxy、HttpClient 等其他属性设置默认值(在上面的示例中删除,因为它在 .net 标准上运行良好)

我已经没有想法和事情可以尝试了。我有以下问题:

  1. .net core 与 .net Framework 之间的代码是否需要不同
  2. 是否还有其他内容需要进入 appsettings.json(即本应进入 web.config 的配置)
  3. Startup.cs中是否需要额外的配置代码
  4. 我应该使用外部库吗
  5. 我该如何解决问题所在? Fiddler 似乎没有帮助,但我并没有努力配置它。

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.net core 2.0代理请求总是导致http 407(需要代理身份验证) 的相关文章

随机推荐

  • 以编程方式识别 PDF 文件中的扫描文本 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个 PDF 文件 其中包含我们需要导入数据库的数据 这些文件似乎是打印的字母数字文本的 pdf
  • 将 POST 从请求转换为 GAE urlfetch

    我正在使用 PayPal 付款 这是它如何正确工作的requests res requests post get payment info url headers headers data params res data res json
  • 检查 UITableViewCell 是否完全可见

    如何检查 UITableViewCell 在屏幕上是否完全可见 不被选项卡或导航栏切断 我可以使用以下代码获取可见单元格 NSArray indexes tableView indexPathsForVisibleRows 但我想排除屏幕中
  • Android Studio 调试失败,错误:任务 ':app:preDexDebug'.Pl 执行失败

    当我运行我的项目时 它在标题中显示错误 解决办法是什么 apply plugin com android application android compileSdkVersion 24 buildToolsVersion 24 0 0 d
  • jQuery .getJSON 与 .post 哪一个更快?

    Using getJSON or post 我正在尝试通过仅用于 AJAX 请求的页面发送一些参数 并获取 JSON 或 html 片段中的一些结果 我想知道哪个更快 假设 HTML 文件只是纯布尔文本 true 或 false 正如其他人
  • Stripe API - 代理后面的 PHP Curl 请求

    我正在尝试使用 php 和curl 在代理后面向 stripe api 发出请求 如果我不在代理后面 则以下内容有效 ch curl init curl setopt ch CURLOPT URL https api stripe com
  • 列出某个类的所有对象

    好的 我的问题如下 我有一个用这个构造函数描述宠物的类 public function construct name type age 所以我想做的是制作一些宠物对象 然后我想打印这个类的所有对象的所有属性 这样它看起来像this http
  • 安装pyserial Mac OS 10.10?

    尝试使用 Python 2 7 与 Arduino 串行端口进行通信 已下载 pyserial 2 7 解压缩并将文件夹 pyserial 文件夹放入 python 应用程序文件夹中 没有工作错误消息 没有名为 pyserial 的模块 对
  • AES 在汇编中的实现 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 大家好 我正在尝试构建一个代码来演示
  • 检查 Python 中的唯一输出

    我昨天遇到了一个有趣的数学问题并解决了它 但是根据我编写的代码 我必须进行键盘中断 否则它将永远运行 哈哈 所以我把它改为有结束条件 但现在它只打印 1 个解决方案并停止 问题是这样的 你有数字 123456789 按这个顺序 在每个数字之
  • Prism / MEF:如何在不硬编码区域名称的情况下注册ViewWithRegion

    我们正在构建一个 WPF Prism 应用程序 我们有不同的开发人员从事不同的模块项目 并且多个模块被注入到主应用程序外壳中 主应用程序也是一个单独的项目 我们还希望能够在不同的应用程序中使用这些模块 我们不希望在每个应用程序中都使用相同的
  • 如何在多模块 spring-boot maven 项目中构建特定模块

    我创建了一个多模块 Spring Boot Maven 项目 但是当我使用 mvn clean package pl module2 spring boot run 在控制台中 它告诉我 module1 中的某些类找不到 但我已经在 mod
  • 在 VC++ 中,#pragma 相当于 /O2 编译器选项(优化速度)

    根据msdn http msdn microsoft com en us library 8f8h5cxt aspx O2 最大速度 相当于 Og Oi Ot Oy Ob2 Gs GF Gy 并根据msdn http msdn micros
  • 如何将字符数组转换为字符串数组?

    Given 一个字符串dayCodes i e MWF or MRFU 我需要分割并创建一个字符串集合 这样我就可以获得一周中某天字符串的列表 即 Monday Wednesday Friday or Monday Thursday Fri
  • 如何将长选项与 Bash getopts 内置一起使用?

    我正在尝试解析 tempBash getopts 的选项 我这样调用我的脚本 myscript temp foo bar someFile 这是我用来解析选项的代码 while getopts temp shots o option do
  • 在 Google Map API V3 中隐藏信息窗口上的阴影

    我想隐藏 Google Map API V3 中 infowindow 上的阴影 我尝试访问 Floatshadow 窗格 但我不知道该怎么做
  • 如何向 Django 管理添加报告部分?

    我想在 Django 管理中实现一个报告部分 这意味着在管理主页中添加一个自定义部分 我将看到报告列表 而不是模型列表 我想使用 Django 的管理表 其中包括过滤器 排序以及所有可能的功能 实现这一目标的 最佳 方法是什么 我意识到这是
  • 在两个单独的分支或存储库中管理项目后端和前端?

    我启动了一个移动应用程序项目 该项目将具有服务器端和应用程序本身 所以 在master分支我创建了2个项目myapp server and myapp然后我创建了另外 2 个分支backend and frontend我只想将与它们相对应的
  • 动态高度 UITableViewCell 内的动态高度 UICollectionView

    我有一个水平的UICollectionView固定到 a 的所有边缘UITableViewCell 集合视图中的项目是动态调整大小的 我想让表视图的高度等于最高集合视图单元格的高度 视图的结构如下 UI表格视图 UITableViewCel
  • .net core 2.0代理请求总是导致http 407(需要代理身份验证)

    我正在尝试通过 net core 2 0 Web 应用程序中的 WebProxy 发出 HTTP 请求 我得到的代码在 net框架中运行良好 所以我知道 相信 这不是环境问题 我也尝试使用两者来发出请求HttpWebRequest and