【问题】

通过浏览器等访问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)...相关推荐

  1. 这篇文章记录平时学习、项目中遇到的问题(未解决的居多)

    前言 这篇文章记录平时学习.项目中遇到的问题(未解决的居多) 快速排序的等号 维基百科的快排如下: while (left < right) {while (arr[left] < mid ...

  2. 最近实际项目中遇到的技术问题与解决思路

    最近实际项目中遇到的技术问题与解决思路 参考文章: (1)最近实际项目中遇到的技术问题与解决思路 (2)https://www.cnblogs.com/lunlunshiwo/p/9222456.ht ...

  3. Unity中使用另一个遮罩方案解决Mask组件的锯齿现象

    本文分享Unity中使用另一个遮罩方案解决Mask组件的锯齿现象 动机 在上一篇文章中, 细心的同学可能看到了, 放大头像后可以看到明显的锯齿, 如图: 这是因为模板测试是按照像素来测试, 要么通过, ...

  4. RStudio控制台(console)中出现少量中文乱码的解决方法

    RStudio控制台(console)中出现少量中文乱码的解决方法 参考文章: (1)RStudio控制台(console)中出现少量中文乱码的解决方法 (2)https://www.cnblogs. ...

  5. 计算机没有快速启动,电脑Win10电源管理中没有快速启动选项的解决方法

    近期有很多人升级win10之后,开机变得好慢,一分多钟,网上很多教程都是教我们 "快速启动"项,而有的电脑就是找不到快速启动项.下面是学习啦小编为大家整理的关于电脑Win10电源管 ...

  6. jar中没有主清单属性【解决办法】

    <main><script type="text/javascript"> var blogSensitiveWords = ""; j ...

  7. 如何解决json中携带的反斜杠_【经验分享】python干货:5种反扒机制的解决方法...

    前言 反爬虫是网站为了维护自己的核心安全而采取的抑制爬虫的手段,反爬虫的手段有很多种,一般情况下除了百度等网站,反扒机制会常常更新以外.为了保持网站运行的高效,网站采取的反扒机制并不是太多,今天分享几 ...

  8. JavaScript实现返回数字的二进制表示中使用的位数bitLength算法(附完整源码)

    JavaScript实现返回数字的二进制表示中使用的位数bitLength算法(附完整源码) bitLength.js完整源代码 bitLength.js完整源代码 export default fu ...

  9. HTML5期末大作业:中韩美食加盟网站设计——中韩美食加盟网站(22页) H关于食品的网页设计作页源码下载DW大学生网页大作业网页设计

    HTML5期末大作业:中韩美食加盟网站设计--中韩美食加盟网站(22页) H关于食品的网页设计作页源码下载DW大学生网页大作业网页设计 常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. ...

最新文章

  1. 关于高速光耦6n137的使用总结_光耦使用中的那点事1
  2. vc sp6 中英文和补丁下载地址
  3. 【VC基础】 6、VC条件定价
  4. mysql教程详解之多表联合查询,MYSQL教程mysql多表联合查询返回一张表的内容实现代码...
  5. Python应用实战-用Python爬取数据分析岗位信息并可视化分析
  6. 正反观点验证2010年10大安全挑战
  7. jQuery – 6.选择器
  8. Spring Boot学习记之Maven
  9. 晶体封装越小esr越大_晶振电路知识讲解之晶体参数详解
  10. Android系统分辨率修改方法,Android:系统分辨率的修改
  11. 计算机化验中红细胞的测量程序,血液常规检查检验程序.doc
  12. 手机拍的照片计算机内存不足怎么办,手机内存不够用,照片应该怎么处理才能够少占用内存?...
  13. 有关深度学习人工智能的感悟
  14. request常用方法
  15. Android 跳转电话、邮件、短信等系统页面
  16. 攻心为上,俘获人心的商业推广软文这样写
  17. php artisan code,源码解读 Laravel PHP artisan config:cache
  18. Pycharm 常用快捷键大全【快查字典版】
  19. java正则开头结尾_以m开头以d结尾的正则表达式-正则表达式以什么开头-正则表达式不以0开头...
  20. Java 之父高斯林加入亚马逊 AWS

热门文章

  1. 九龙证券|最高赚7万!上周新股现两大“肉签”,本周申购日历来了
  2. 用广告配音器如何给广告进行配音
  3. 解决MySQL3306端口被占用 docker启动不了MySQL容器
  4. PeekMessage和GetMessage函数的主要区别
  5. 货车司机老王的一个梦
  6. iOS数据存储-钥匙串存储
  7. 如何做GIF动画?一分钟把视频做成gif动图
  8. 【OpenCV 学习笔记】第十一章: 图像金字塔
  9. 第六章 Android应用的资源
  10. 傻瓜教学——C语言中常用的占位符%d,%c,%f,%p,%x,%s等的含义解释