【问题】

通过浏览器等访问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. PyTorch中文版官方教程来啦(附pdf下载)
  2. 解决了一些RSS阅读器不能查看图片的问题
  3. 【项目总结】之——导出Excel
  4. intrigue more
  5. Windows 10 IoT Core 17101 for Insider 版本更新
  6. incompatible jvm_JVM垃圾回收回收算法详解
  7. 猎豹浏览器打飞机_墙内最好浏览器,微软带来完整版谷歌浏览器,扩展、同步无限制!...
  8. Linux 环境下安装 GitLab 与配置
  9. WCF 项目应用连载[8] - 绑定、服务、行为 大数据传输与限流 - 下 (ServiceThrottlingAttribute)...
  10. 从VC++ 6.0 MSDEV到Visual Studio 2017的过渡阶段
  11. hough直线检测c语言,基于hough变换的直线检测
  12. Linux桌面没有minidwep,ubuntu 12.04完整安装minidwep-gtk教程
  13. windows 环境下 0x色彩对应表
  14. restful接口实战 更新用put 新增用post 获取get 删除detele
  15. 移动硬盘读取速度突然变慢?教你7个方法解决
  16. 三角形周长最短问题_「初中数学」从三角形周长的最值问题说说解题策略
  17. python+html实现前后端数据交互界面显示
  18. xgboost算法_XGBoost算法背后的数学:尽可能简单地解释XGBoost算法背后的数学机制...
  19. 21.12.19初识C语言
  20. RabbitMq(二)一文彻底弄懂RabbitMq的四种交换机原理及springboot实战应用

热门文章

  1. 肝了一个月!这本 Java 开发手册出炉啦!
  2. 【Threejs】轮廓线、边框线、选中效果实现的N种方法以及性能评估(目前7种)
  3. ubuntu安装后基本配置
  4. python开发ps插件_3 行 Python 代码实现 5 秒抠图的 AI 神器,告别PS(附教程)
  5. Dethe is my Finaunce金融
  6. 最大流算法-ISAP
  7. 揭秘电诈手段|打开“屏幕共享”,存款不翼而飞
  8. 什么是主机内存缓冲区或 HMB NVMe SSD?
  9. 阻塞IO、非阻塞IO、以及多路复用原理
  10. c++ enable_shared_from_this