c#无需添加引用执行JS,编译无需带dll
二狗与2014/08/03发布
cs
爬虫
写 POST
经常会遇到用 JS 来加密的一些网站,然后又不想用 C#重写。
在百度和论坛里找的 JS 执行不是 64 位不支持就是要带个 DLL 神马的。很讨厌。
然后自己就写了个不需要带 DLL 的。而且支持所有系统哟(64 位也一样)(服务器 2003 多线程 POST 1 个月没崩溃过)
取 13 位时间戳的例子 相信玩 POST 的都比较常见 比如:1410106357535
cs
Type obj = Type.GetTypeFromProgID("ScriptControl");
if (obj == null) return; //单身? 找不到对象啊,
object ScriptControl = Activator.CreateInstance(obj);
obj.InvokeMember("Language", BindingFlags.SetProperty, null, ScriptControl, new object[] { "JScript" });
string js = "function time(){return new Date().getTime()}";
obj.InvokeMember("AddCode", BindingFlags.InvokeMethod, null, ScriptControl, new object[] { js });
string str = obj.InvokeMember("Eval", BindingFlags.InvokeMethod, null, ScriptControl, new object[] { "time()" }).ToString(); //调用函数
textBox1.Text = str; //返回结果