如何为 Web 客户端打开自动重定向

2023-12-11

我有这个代码:

class CustomWebclient: WebClient
{
  [System.Security.SecuritySafeCritical]
  public CustomWebclient(): base()
 {
 }
 public CookieContainer cookieContainer = new CookieContainer();


 protected override WebRequest GetWebRequest(Uri myAddress)
 {
       WebRequest request = base.GetWebRequest(myAddress);
       if (request is HttpWebRequest)
      {
           (request as HttpWebRequest).CookieContainer =   cookieContainer;
           (request as HttpWebRequest).AllowAutoRedirect = true;
      }
      return request;
  }
}

当我加载 example.com 页面时,我得到:

Server: nginx
Date: Fri, 23 Aug 2013 05:24:44 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
location: /examplePage

但我的自定义 Web 客户端不遵循重定向。 为什么?该怎么修复它?

也许它不起作用,因为“位置”是小写的。


你的代码在我的测试下运行良好。

当提供正确的 cookie 时,我的测试网站 weibo.com 将强制通过 HTTP 302 重定向。

关闭自动重定向后,响应标头为

Transfer-Encoding: chunked
Connection: close
Pramga: no-cache
DPOOL_HEADER: dagda24
Cache-Control: no-cache, must-revalidate
Content-Type: text/html
Date: Thu, 13 Mar 2014 15:07:53 GMT
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Last-Modified: Thu, 13 Mar 2014 15:07:53 GMT
Location: /u/2398332747/home?wvr=5
Server: nginx

并且网页没有明显重定向。

启用自动重定向后,响应标头为:

Transfer-Encoding: chunked
Connection: close
Vary: Accept-Encoding
Pragma: no-cache
DPOOL_HEADER: balor165
Cache-Control: no-cache, must-revalidate
Content-Type: text/html; charset=utf-8
Date: Thu, 13 Mar 2014 15:13:26 GMT
Expires: Sat, 26 Jul 1997 05:00:00 GMT
Server: nginx

网页内容验证请求是否已重定向。

我确实注意到位置标头的第一个字母是大写的。这个没有测试header格式是否相关。

Edit:

最后,对 example.com 进行了测试,但在我的环境下它根本没有触发重定向。这就是为什么我选择 weibo.com 作为替代方案。

Edit:

我对此做了一些更多的研究,根据 RFC 2616,标头不区分大小写。你的代码对我来说很好,但仍然不知道为什么会出错。希望其他人给个指导。

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

如何为 Web 客户端打开自动重定向 的相关文章

  • Windows Phone 7 图表/图形控件

    我们正在开发一个 Windows Phone 7 原型应用程序 并且需要一个图形 图表控件来使用 我们看了银光工具包 http silverlight codeplex com 其中有一些看起来效果很好的控件 但是 我们无法让它发挥作用 每
  • Directory.Delete 之后 Directory.Exists 有时返回 true ?

    我有非常奇怪的行为 我有 Directory Delete tempFolder true if Directory Exists tempFolder 有时 Directory Exists 返回 true 为什么 可能是资源管理器打开了
  • 如何在c++中读取pcap文件来获取数据包信息?

    我想用 C 编写一个程序来读取 pcap 文件并获取数据包的信息 例如 len sourc ip flags 等 现在我找到了如下代码 我认为它会帮助我获取信息 但是我有一些疑问 首先我想知道应该将哪个库添加到我的程序中 然后什么是 pca
  • 如何将非静态类成员“std::bind”绑定到 Win32 回调函数“WNDPROC”?

    我正在尝试将非静态类成员绑定到标准WNDPROC http msdn microsoft com en us library ms633573 aspx功能 我知道我可以通过将类成员设为静态来简单地做到这一点 但是 作为一名 C 11 ST
  • 确保 StreamReader 不会挂起等待数据

    下面的代码读取从 tcp 客户端流读取的所有内容 并且在下一次迭代中它将仅位于 Read 上 我假设正在等待数据 我如何确保它不会在没有任何内容可供读取时返回 我是否必须设置低超时 并在失败时响应异常 或者有更好的办法吗 TcpClient
  • 提交后禁用按钮

    当用户提交付款表单并且发布表单的代码导致 Firefox 中出现重复发布时 我试图禁用按钮 去掉代码就不会出现这个问题 在firefox以外的任何浏览器中也不会出现这个问题 知道如何防止双重帖子吗 System Text StringBui
  • 在 DataView 的 RowFilter 中选择 DISTINCT

    我试图根据与另一个表的关系缩小 DataView 中的行范围 我使用的 RowFilter 如下 dv new DataView myDS myTable id IN SELECT DISTINCT parentID FROM myOthe
  • 当我们想要返回对象的引用时,为什么我们在赋值运算符中返回 *this 而通常(而不是 this)?

    我正在学习 C 和指针 我以为我理解了指针 直到我看到这个 一方面 asterix 运算符是解引用的 这意味着它返回值所指向的地址中的值 而与号 运算符则相反 它返回值存储的地址记忆 现在阅读有关赋值重载的内 容 它说 我们返回 this因
  • 如何区分用户点击链接和页面自动重定向?

    拥有 C WebBrowser control http msdn microsoft com en us library system windows forms webbrowser aspx在我的 WinForms 应用程序中 并意识
  • 为什么 Google 测试会出现段错误?

    我是 Google Test 的新手 正在尝试提供的示例 我的问题是 当我引入失败并设置GTEST BREAK ON FAILURE 1 或使用命令行选项 GTest 将出现段错误 我正在考虑这个例子 https code google c
  • 如何使用 LINQ2SQL 连接两个不同上下文的表?

    我的应用程序中有 2 个数据上下文 不同的数据库 并且需要能够通过上下文 B 中的表的右连接来查询上下文 A 中的表 我该如何在 LINQ2SQL 中执行此操作 Why 我们正在使用 SaaS 产品来跟踪我们的时间 项目等 并希望向该产品发
  • C# 中的合并运算符?

    我想我记得看到过类似的东西 三元运算符 http msdn microsoft com en us library ty67wk28 28VS 80 29 aspx在 C 中 它只有两部分 如果变量值不为空 则返回变量值 如果为空 则返回默
  • 外键与独立关系 - Entity Framework 5 有改进吗?

    我读过了several http www ladislavmrnka com 2011 05 foreign key vs independent associations in ef 4 文章和问题 https stackoverflow
  • 使用管道时,如果子进程数量大于处理器数量,进程是否会被阻塞?

    当子进程数量很大时 我的程序停止运行 我不知道问题是什么 但我猜子进程在运行时以某种方式被阻止 下面是该程序的主要工作流程 void function int process num int i initial variables for
  • 按 Esc 按键关闭 Ajax Modal 弹出窗口

    我已经使用 Ajax 显示了一个面板弹出窗口 我要做的是当用户按 Esc 键时关闭该窗口 这可能吗 如果有人知道这一点或以前做过这一点 请帮助我 Thanks 通过以下链接 您可以通过按退出按钮轻松关闭窗口 http www codepro
  • 不同类型指针之间的减法[重复]

    这个问题在这里已经有答案了 我试图找到两个变量之间的内存距离 具体来说 我需要找到 char 数组和 int 之间的距离 char data 5 int a 0 printf p n p n data 5 a long int distan
  • 调用堆栈中的“外部代码”是什么意思?

    我在 Visual Studio 中调用一个方法 并尝试通过检查调用堆栈来调试它 其中一些行标记为 外部代码 这到底是什么意思 方法来自 dll已被处决 外部代码 意味着该dll没有可用的调试信息 你能做的就是在Call Stack窗口中单
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • 如何从 ODBC 连接获取可用表的列表?

    在 Excel 中 我可以转到 数据 gt 导入外部数据 gt 导入数据 然后选择要使用的数据源 然后在提供登录信息后 它会给我一个表格列表 我想知道如何使用 C 以编程方式获取该列表 您正在查询什么类型的数据源 SQL 服务器 使用权 看
  • 从列表中选择项目以求和

    我有一个包含数值的项目列表 我需要使用这些项目求和 我需要你的帮助来构建这样的算法 下面是一个用 C 编写的示例 描述了我的问题 int sum 21 List

随机推荐

  • Unity3D - 在 Android 上接到任何呼叫/通知后音频播放变得静音

    我在 Android 版本上遇到音频播放问题 我使用的是 Unity 5 4 0b15 但我在 5 3 4p3 上遇到了同样的问题 我在场景中的 AudioPlayer 游戏对象中添加了用于播放背景音乐的简单组件 public AudioC
  • AS3中的实时更新和推送数据

    我想对我的 Flash 应用程序进行实时更新 我更喜欢推送技术 而不是每 30 秒刷新一次 在 Actionscript 3 中推送数据的最佳方式是什么 有两种流行的实现实时更新的选项 套接字和 RTMP 每种方法都有优点和缺点 但主要决定
  • 使用 JasperReports API 在代码中出现“java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory”

    我正在开发一个简单的独立桌面应用程序 它将根据传递给程序的值生成报告 没有数据库使用 我已经使用 iReport 设计器设计了 JasperReports 报表并添加了一个参数ID NO和一个带有表达式的文本字段 P ID NO 我可以成功
  • 无法修改全局 int,但可以修改列表。如何?

    列表 VAR1 0 def foo VAR1 1 返回VAR1 通话中foo 我收到此错误 UnboundLocalError local variable VAR1 referenced before assignment 但是 请考虑该
  • 陷阱标志(TF)和监视器陷阱标志之间的区别?

    像 GDB 这样的调试功能通过设置 eflags 寄存器的 TF 标志来工作 这会在处理器每次执行指令后引发异常 让 gdb 等工具控制调试 当我们运行虚拟机 Ex 时 在 kvm 的情况下执行以下操作同样 您需要设置一个名为 MONITO
  • 如何从表中选择所有列以及 ROWNUM 等其他列?

    在Oracle中 可以做一个SELECT将行号作为结果集中的列返回的语句 例如 SELECT rownum column1 column2 FROM table returns rownum column1 column2 1 Joe Sm
  • 如何使CSS平滑过渡

    我怎样才能得到像这样的CSS转换示例here 下拉示例 到目前为止 我已经成功地只更改了文本和背景颜色 但没有更改整个过渡效果 矩形在悬停时滚动 在未悬停时平滑回滚 知道我该如何做吗 实现这一目标 这是我的代码 a menulink tex
  • 使用多处理进行日志记录

    我确实有以下内容logger类 如 logger py import logging logging handlers import config log logging getLogger myLog def start Function
  • android:如何测量智能手机产生的流量?

    我需要监控哪些服务 应用程序为我的手机产生了哪些流量 以 kbit s 为单位 按上行链路和下行链路分隔 我该怎么做呢 我用谷歌搜索但没有找到任何有用的帖子 操作方法 答案是 TrafficStats 类 在这里 您可以获得传输的字节和 或
  • C#:设置工具提示气球中箭头的位置?

    是否可以更改气球工具提示中箭头 茎的位置 更改的原因是因为位于屏幕顶部的按钮应该在其下方有一个工具提示 已删除损坏的图像链接 上面是现在的情况 我只需要箭头位于气球的左上角即可 我使用 InteropServices 调用多个 User32
  • 错误:安装 wx 时为 wxpython-phoenix 构建轮子失败

    我正在尝试安装 wxpython 我有 python 3 5 2 32Bit 和 Windows 10 64Bit 我试过 pip install wx我得到 Failed Building Wheel for wxpython phoen
  • 如何控制引导轮播在项目中滑动的速度?

    我看到你可以设置间隔 但我想控制项目滑动的速度 Sets interval what is transition slide speed mainCarousel carousel interval 3000 速度无法通过 API 控制 尽
  • 洗牌所需的 IEnumerable 的扩展方法[重复]

    这个问题在这里已经有答案了 我需要一个扩展方法来洗牌IEnumerable
  • 获取原始文件名谷歌应用引擎

    当在谷歌应用程序引擎上收到文件上传时 这个例子假设您收到的是 png 但是 您只能通过文件名的扩展名知道图像的类型 如何获取GAE上上传的原始文件名 正在上传的文件的文件名可以通过查看来确定filename保存文件的变量的属性 例如 假设您
  • Mechanize 不显示 FB 消息表单

    import mechanize cookielib br mechanize Browser cookie jar cookielib CookieJar br set cookiejar cookie jar br addheaders
  • Android同步cookies webview和httpclient

    我有一个登录 webview 和 httpclient 需要确认用户是否登录 问题是 webview 和 httpclient 正在使用其他 cookie 因此 httpclient 无法获取 webview cookie 我读了很多人的问
  • 更改 Html.TextBox 的大小

    我正在使用新的 Razor 视图引擎开发 ASP NET MVC3 应用程序 但在更改 TextBox 使其成为多行时遇到一些困难 到目前为止 我通过谷歌找到的只是我需要将多行属性设置为 true 但我不知道如何设置 查看代码如下所示 di
  • Java 绑定异常

    即使重用地址设置为 true 什么会导致 TCP 套接字抛出 java net BindException 地址已在使用中 仅当应用程序快速重新启动时才会发生这种情况 在 CentOS 5 Linux 操作系统上运行 这有点解释它 http
  • Tinymce 与 Angular 2/4 的双向绑定

    这是我的tinymce component ts import Component OnDestroy AfterViewInit EventEmitter Input Output from angular core Component
  • 如何为 Web 客户端打开自动重定向

    我有这个代码 class CustomWebclient WebClient System Security SecuritySafeCritical public CustomWebclient base public CookieCon