有朋友报名东方时尚,理论课选的网上教学,需要看完所有的视频才能算科目一培训完成,在很早之前就有朋友因为这个找过我。当时东方时尚的授课系统还很简单。。每次看完一个视频都会发起一个固定的请求,表示当前视频看完了。所以之前的做法很简单,把那个url在新标签页打开,每开一个视频,刷一下页面,就算看完一段视频了。。所以不用什么复杂操作,很容易就能完成。 不过现在,东方时尚的系统明显升级了,已经不是那么简单的逻辑了,每次请求一个新视频,都会有一个/start的请求,把视频id返回,后边每次心跳和看完视频的请求,都是以该id为参数。不能再像以前那么简单的玩耍了。。本来是想写个chrome的扩展来拦截请求做处理的,突然想到Fiddler的script就可以做这些,而且语法是.NET的,会比较熟:)。 做法也很简单,就是在OnBeforeResponse阶段,获取到body,正则匹配到需要的id,然后再发起一个请求:),多说无益,直接show code. static function OnBeforeResponse(oSession: Session) { if (m_Hide304s && oSession.responseCode == 304) { oSession[“ui-hide”] = “true”; } oSession.utilDecodeResponse(); var oBody = oSession.GetResponseBodyAsString (); var regex = /{“data”:{“streamId”:(\d+)},“/i ; if (oBody.match(regex)) { var matches = oBody.match(regex); //MessageBox.Show(matches ); var s = “POST http://api.dfsstv.cn/api/v1/Stream/End?streamId=" + matches[1] + “ HTTP/1.1\r\nHost: api.dfsstv.cn\r\nConnection: keep-alive\r\nContent-Length: 0\r\nPragma: no-cache\r\nCache-Control: no-cache\r\nDeviceId: 1456634190000\r\nOrigin: http://www.dfsstv.cnrnApiKey: 59d71859d3dd491a8ad6accbe7262d94\r\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36\r\nAuthToken: a54a874bddfb449cbbf4ed698b4e0fc4\r\nAccept: /\r\nReferer: http://www.
阅读全文

Go如何比较时间大小

Go如何比较时间大小: 先把当前时间格式化成相同格式的字符串,然后使用time的Before, After, Equal 方法即可. time1 := “2015-03-20 08:50:29” time2 := “2015-03-21 09:04:25” //先把时间字符串格式化成相同的时间类型 t1, err := time.Parse(“2006-01-02 15:04:05”, time1) t2, err := time.Parse(“2006-01-02 15:04:05”, time2) if err == nil && t1.Before(t2) { //处理逻辑 fmt.Println(“true”) } 这里有oneline的Demo,可以在线修改,运行。https://play.golang.org/p/oRJ_1-DE4l
阅读全文

今天收到用户反馈,用户在举报谈谈的谈主时会显示提交失败。 这个反馈页面入口在反馈平台,调用谈谈项目的后端接口。 这个服务相关的接口都好久没有动了,为什么会失败呢? 在线上找了一台机器进行debug,发现接口返回内容是“正常”的,一段可读的json字符串。把字符串拷贝下,在js下发现是可以解析的。 但是该项目下用的json_decode,却怎么都decode不成功。调试了半天都觉得甚是古怪,一直都找不到头绪,怕自己脑子是思维定势了,跑去看了会golang,再回来继续解决。 再怎么看, 都还是觉得很正常,不应该出问题。 再一次拷贝接口返回的字符串的时候,发现头部多了个标签。 feff-utf8_bom_remove_linux_vim 查了下,发现这个FEFF就是BOM。 参考:字节顺序标记 找到问题所在了,解决问题就好说了。 windows下有各式各样的编辑器,都可以解决bom头问题,可是linux下该怎么解决呢? google了下,问题都解决了。 1.找到哪些文件包含BOM头。 grep -rl $‘xEFxBBxBF’ . 通过hexdump可以看到bom头的存在。 hexdump-BOM-utf8-file 2.删除BOM头信息。 sed ‘1s/^xEFxBBxBF//’ filename.php -i 删除后就不会再看到BOM头拉。 hexdump-NO-BOM-utf8-file 可以用一条命令查找并删除文件的BOM头信息: find . -type f -exec sed ‘1s/^xEFxBBxBF//’ -i.bak {} ; -exec rm {}.bak ; 总结: 在多人维护的项目下,很可能会有其他人上传一些不合适的文件或代码,需要对一些常规情况进行监控,及时发现、解决,避免影响线上问题。
阅读全文

tar.bz2 解压

首先: bzip2 -d wkhtmltopdf-0.11.0_rc1-static-i386.tar.bz2 会解压成一个tar文件 wkhtmltopdf-0.11.0_rc1-static-i386.tar 在打开tar即可。 tar -xvf wkhtmltopdf-0.11.0_rc1-static-i386.tar 就会看到包里的内容了。
阅读全文

vim统计有多少个要搜索的字符

vim统计有多少个要搜索的字符

其实很简单,用到的就是替换功能:s

:%s/pattern/&/g

 & 就是用来表示前面匹配的字符串,所以做这个指令其实对文件本身并不会有什么改变。但是由于做的是全文的替换, vim 会告诉你有从多少行中多少个字串被取代。

`

vim统计有多少个要搜索的字符

vim统计有多少个要搜索的字符

其实很简单,用到的就是替换功能:s

:%s/pattern/&/g

 & 就是用来表示前面匹配的字符串,所以做这个指令其实对文件本身并不会有什么改变。但是由于做的是全文的替换, vim 会告诉你有从多少行中多少个字串被取代。

`


阅读全文

作者的图片

DigDeeply

Technology Stack: PHP/Openresty/GoLang, and so on…

Web Develop Eneigneer

Beijing China