html源码中的反斜杠,【未解决】为何C#中访问Skydrive返回的html源码中包含这么多反斜杠零(\0)...
【问题】
通过浏览器等访问https://skydrive.live.com/或https://skydrive.live.com/?cid=9a8b8bf501a38a36之类的地址,
返回的应该是80KB左右的html源码,其中包括primeResponse部分的json源码的。
此处出的问题是,在C#,不论是非登录模式还是登录模式,
(登录模式就是,之前已经用用户名和密码登录了skydrive,然后再去访问对应的skydrive上的页面)
中的html源码,都会包含除了所期望的html源码之外,源码中会有大量(后经证实是2048046个)的反斜杠零(\0)字符。
所以一共获得html的源码大小就是2MB多了,严重影响了网页访问效率。
想要搞懂,为何会出现这样的问题。
【解决过程】
1.之前在这里:【经验总结】用C#实现模拟登陆Skydrive网站的分析的全过程,就已经提到了此问题。之前就没解决。最近虽然也没解决,但是对于问题的现象,有了更多的了解:经过调试发现是在获取对应http的response的stream中,某个readLine,所获得的内容,不是html源码,正是那个2048046个\0。
2.后又经过调试证实:
就是对应读取返回的html源码的时候:
对于访问skydrive来说,
非登录模式下,返回的html源码中,239行一定是对应的2048046的字节的\0
而登录模式下,返回的html源码中,245行一定是对应的2048046的字节的\0
此处\0即字符串结束的那个\0,所以调试过程中,把此获得的html赋值给一个TexBox的Text,
结果显示出来的内容,就会出现,只是前半部分,截止到\0的那部分,以及2048046个字节的\0,和后面的html源码,都没法显示出来了。
下面是可以规避掉,该readLine所读出的垃圾数据\0的代码:// read responsed html for skydrive url response
// for skydrive seems can not read normally, so need special process here
private string getSkydriveRespHtml(ref HttpWebResponse resp, int slashZeroLineNum)
{
string respHtml = "";
StreamReader sr = new StreamReader(resp.GetResponseStream());
//respHtml = sr.ReadToEnd();
int lines = 0;
while (!sr.EndOfStream)
{
if (lines == slashZeroLineNum)
{
// seems that the skydrive url returned html in this C# code is abnormal
// for here, this 239/245/? line contains all "\0", total size = 2048046 bytes !!!
// so just for speed normal operation, omit this invalid line here
//gDbgRetHtml = sr.ReadLine();
sr.ReadLine();
}
else
{
respHtml += sr.ReadLine();
}
lines++;
}
return respHtml;
}
private string getSkydriveRespHtmlUnlogin(ref HttpWebResponse resp)
{
return getSkydriveRespHtml(ref resp, 239);
}
private string getSkydriveRespHtmlLogin(ref HttpWebResponse resp)
{
return getSkydriveRespHtml(ref resp, 245);
}
但是由于要获得返回的html源码,所以如果只是用readToEnd的正常方法,即:
StreamReader sr = new StreamReader(resp.GetResponseStream());
respHtml = sr.ReadToEnd();
去获得对应html源码的话,会花很长时间,因为本来正常skydrive返回的html源码,只是80KB前后,
而此处不知何故,多了2048046字节的垃圾\0数据。
对此问题,至今未找到根本原因。
3.另外所说一句,之前用python脚本去访问skydrive,好像没遇到此问题的。
并且,对应的各个浏览器,比如IE9,Chrome等,访问该网址,所返回的html源码也都是正常的60KB,80KB的。
4.所以,由此看来,问题根据原因,估计还是之前就猜测的,估计是.NET(C#)的http相关的库的问题,
导致此特殊的怪异问题。
html源码中的反斜杠,【未解决】为何C#中访问Skydrive返回的html源码中包含这么多反斜杠零(\0)...相关推荐
- 这篇文章记录平时学习、项目中遇到的问题(未解决的居多)
前言 这篇文章记录平时学习.项目中遇到的问题(未解决的居多) 快速排序的等号 维基百科的快排如下: while (left < right) {while (arr[left] < mid ...
- 最近实际项目中遇到的技术问题与解决思路
最近实际项目中遇到的技术问题与解决思路 参考文章: (1)最近实际项目中遇到的技术问题与解决思路 (2)https://www.cnblogs.com/lunlunshiwo/p/9222456.ht ...
- Unity中使用另一个遮罩方案解决Mask组件的锯齿现象
本文分享Unity中使用另一个遮罩方案解决Mask组件的锯齿现象 动机 在上一篇文章中, 细心的同学可能看到了, 放大头像后可以看到明显的锯齿, 如图: 这是因为模板测试是按照像素来测试, 要么通过, ...
- RStudio控制台(console)中出现少量中文乱码的解决方法
RStudio控制台(console)中出现少量中文乱码的解决方法 参考文章: (1)RStudio控制台(console)中出现少量中文乱码的解决方法 (2)https://www.cnblogs. ...
- 计算机没有快速启动,电脑Win10电源管理中没有快速启动选项的解决方法
近期有很多人升级win10之后,开机变得好慢,一分多钟,网上很多教程都是教我们 "快速启动"项,而有的电脑就是找不到快速启动项.下面是学习啦小编为大家整理的关于电脑Win10电源管 ...
- jar中没有主清单属性【解决办法】
<main><script type="text/javascript"> var blogSensitiveWords = ""; j ...
- 如何解决json中携带的反斜杠_【经验分享】python干货:5种反扒机制的解决方法...
前言 反爬虫是网站为了维护自己的核心安全而采取的抑制爬虫的手段,反爬虫的手段有很多种,一般情况下除了百度等网站,反扒机制会常常更新以外.为了保持网站运行的高效,网站采取的反扒机制并不是太多,今天分享几 ...
- JavaScript实现返回数字的二进制表示中使用的位数bitLength算法(附完整源码)
JavaScript实现返回数字的二进制表示中使用的位数bitLength算法(附完整源码) bitLength.js完整源代码 bitLength.js完整源代码 export default fu ...
- HTML5期末大作业:中韩美食加盟网站设计——中韩美食加盟网站(22页) H关于食品的网页设计作页源码下载DW大学生网页大作业网页设计
HTML5期末大作业:中韩美食加盟网站设计--中韩美食加盟网站(22页) H关于食品的网页设计作页源码下载DW大学生网页大作业网页设计 常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. ...
最新文章
- PyTorch中文版官方教程来啦(附pdf下载)
- 解决了一些RSS阅读器不能查看图片的问题
- 【项目总结】之——导出Excel
- intrigue more
- Windows 10 IoT Core 17101 for Insider 版本更新
- incompatible jvm_JVM垃圾回收回收算法详解
- 猎豹浏览器打飞机_墙内最好浏览器,微软带来完整版谷歌浏览器,扩展、同步无限制!...
- Linux 环境下安装 GitLab 与配置
- WCF 项目应用连载[8] - 绑定、服务、行为 大数据传输与限流 - 下 (ServiceThrottlingAttribute)...
- 从VC++ 6.0 MSDEV到Visual Studio 2017的过渡阶段
- hough直线检测c语言,基于hough变换的直线检测
- Linux桌面没有minidwep,ubuntu 12.04完整安装minidwep-gtk教程
- windows 环境下 0x色彩对应表
- restful接口实战 更新用put 新增用post 获取get 删除detele
- 移动硬盘读取速度突然变慢?教你7个方法解决
- 三角形周长最短问题_「初中数学」从三角形周长的最值问题说说解题策略
- python+html实现前后端数据交互界面显示
- xgboost算法_XGBoost算法背后的数学:尽可能简单地解释XGBoost算法背后的数学机制...
- 21.12.19初识C语言
- RabbitMq(二)一文彻底弄懂RabbitMq的四种交换机原理及springboot实战应用
热门文章
- 肝了一个月!这本 Java 开发手册出炉啦!
- 【Threejs】轮廓线、边框线、选中效果实现的N种方法以及性能评估(目前7种)
- ubuntu安装后基本配置
- python开发ps插件_3 行 Python 代码实现 5 秒抠图的 AI 神器,告别PS(附教程)
- Dethe is my Finaunce金融
- 最大流算法-ISAP
- 揭秘电诈手段|打开“屏幕共享”,存款不翼而飞
- 什么是主机内存缓冲区或 HMB NVMe SSD?
- 阻塞IO、非阻塞IO、以及多路复用原理
- c++ enable_shared_from_this