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大学生网页大作业网页设计 常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. ...
最新文章
- 关于高速光耦6n137的使用总结_光耦使用中的那点事1
- vc sp6 中英文和补丁下载地址
- 【VC基础】 6、VC条件定价
- mysql教程详解之多表联合查询,MYSQL教程mysql多表联合查询返回一张表的内容实现代码...
- Python应用实战-用Python爬取数据分析岗位信息并可视化分析
- 正反观点验证2010年10大安全挑战
- jQuery – 6.选择器
- Spring Boot学习记之Maven
- 晶体封装越小esr越大_晶振电路知识讲解之晶体参数详解
- Android系统分辨率修改方法,Android:系统分辨率的修改
- 计算机化验中红细胞的测量程序,血液常规检查检验程序.doc
- 手机拍的照片计算机内存不足怎么办,手机内存不够用,照片应该怎么处理才能够少占用内存?...
- 有关深度学习人工智能的感悟
- request常用方法
- Android 跳转电话、邮件、短信等系统页面
- 攻心为上,俘获人心的商业推广软文这样写
- php artisan code,源码解读 Laravel PHP artisan config:cache
- Pycharm 常用快捷键大全【快查字典版】
- java正则开头结尾_以m开头以d结尾的正则表达式-正则表达式以什么开头-正则表达式不以0开头...
- Java 之父高斯林加入亚马逊 AWS
热门文章
- 九龙证券|最高赚7万!上周新股现两大“肉签”,本周申购日历来了
- 用广告配音器如何给广告进行配音
- 解决MySQL3306端口被占用 docker启动不了MySQL容器
- PeekMessage和GetMessage函数的主要区别
- 货车司机老王的一个梦
- iOS数据存储-钥匙串存储
- 如何做GIF动画?一分钟把视频做成gif动图
- 【OpenCV 学习笔记】第十一章: 图像金字塔
- 第六章 Android应用的资源
- 傻瓜教学——C语言中常用的占位符%d,%c,%f,%p,%x,%s等的含义解释