webbrowser 数据抓取 遇到json型的response-content弹出下载框,取消下载,直接控件上显示

文章引用地址:http://www.iefans.net/ie-dakai-json-xianshi/ 作者:iefans

为了测试更方便,一般我使用 Web API 都会设置让 Web API 返回 Json 格式。在IE浏览器中,当伙同在地址输入 URL 后 IE 浏览器会弹出是否需要下载的提示。

实际上 IE 弹出下载提示也没有什么不好的,但是有时候想要迫不及待的看到Json返回的结果时,又需要反复的下载再打开查看,这个行为就显得让人讨厌了。如果能够像 Chrome 或 Firefox 可直接看结果就好了。

解决办法也非常简单,需要我们在操作系统的注册表中添加关于 JSON 的 MIME 类型支持,你可以将以下内容编辑成扩展名为 .reg 的文件(文件名随意),然后双击执行将该文件导入注册表:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/json]

"CLSID"="{25336920-03F9-11cf-8FD0-00AA00686F13}"

"Encoding"=dword:00080000

[HKEY_CLASSES_ROOT\MIME\Database\Content Type\text/json]

"CLSID"="{25336920-03F9-11cf-8FD0-00AA00686F13}"

"encoding"=dword:00080000

其原理是修改注册表,将 application/json、text/json 两种 Content-Type 开启设置调成与 GIF/PNG/HTML 一致,改为直接用浏览器打开查看。

导入上面的注册表文件以后,再使用IE开启就可以不需要下载即可显示 json 了。

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

webbrowser的底层实现和IE的一样,所以更改IE的注册表webbrowser也有影响

我使用c#程序更改注册表

RegistryKey rgk = Registry.ClassesRoot.OpenSubKey(@"MIME\Database\Content Type\application/json", true);
            rgk.SetValue("Encoding",524288);
            rgk = Registry.ClassesRoot.OpenSubKey(@"MIME\Database\Content Type\text/json", true);
            rgk.SetValue("Encoding", 524288);
            rgk.Flush(); //刷新注册表  
            rgk.Close();


SetValue() 会覆盖原先的,直接用上面的方法导入注册表文件也可以。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值