概述
平时上网时总是习惯开着Google Music随便选些歌听,但是现在的办公地点不能访问互联网,以前只好把想听的mp3都逐一下载到电脑中,每次更新歌曲库都很麻烦,想分析Google Music中提供的下载mp3流程单独写段自动下载的程序又没有什么好的思路,就想到可以通过Fiddler2 Customize Rule拦截Http请求,通过设置过滤条件当发现在线听歌过程中请求到某个mp3文件时就自动下载到指定目录中。
实现方法如下:
在OnBeforeRequest方法中添加如下代码(由于没搞懂Fiddler2中添加程序集引用的逻辑,一些CLR中的类型调用都是使用反射来完成的):
1: if(oSession.fullUrl.Contains("top100.cn") && oSession.uriContains(".mp3"))
2:
{
3:
var temp: String = oSession.url;
4:
5: temp = temp.Substring(temp.LastIndexOf("/")+1);
6: temp = temp.Substring(0,temp.IndexOf("."));
7:
8: var type: Type = Type.GetType("System.Web.HttpUtility, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
9:
10: var types: Type[] = new Type[1];
11: types[0] = Type.GetType("System.String");
12:
13: var method: System.Reflection.MethodInfo = type.GetMethod("UrlDecode", types);
14:
15: var objects: Object[] = new Object[1];
16:
objects[0] = temp;
17:
18:
var result : Object = method.Invoke(temp, objects);
19:
20:
21: temp = "C:\Users\Pag\Downloads\"+result.ToString()+".mp3";
22:
23:
if(!System.IO.File.Exists(temp))
24:
{
25: type = Type.GetType("System.Net.WebClient, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");
26:
27:
var client: Object = System.Activator.CreateInstance(type);
28:
29:
types = new Type[2];
30: types[0] = Type.GetType("System.String");
31: types[1] = Type.GetType("System.String");
32:
33: method = type.GetMethod("DownloadFile",types);
34:
35:
objects = new Object[2];
36:
objects[0] = oSession.fullUrl;
37:
objects[1] = temp;
38:
39:
method.Invoke(client,objects);
40:
41:
method = type.GetMethod("Dispose");
42:
43: objects = new Object[0]
44:
method.Invoke(client,objects);
45:
}
46:
}
编辑Customize Rule需要安装Fiddler2的插件:FiddlerScript Editor,这个插件可以通过安装Syntax-Highlighting Addons获得。
参考链接:FiddlerScript CookBook
转载于:https://www.cnblogs.com/pagsun/archive/2009/07/26/1531280.html
最后
以上就是幽默诺言为你收集整理的通过Fiddler2 Customize Rule下载mp3的全部内容,希望文章能够帮你解决通过Fiddler2 Customize Rule下载mp3所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复